---
title: "TanLinePointCircle - Получить точки касания окружности и прямой, проходящей через заданную точку"
type: guide
api: [api7]
tags: [guide, api7, tanlinepointcircle]
sources:
  - tanlinepointcircle.html
---

*API экспортных функций > Функции работы с графическим документом  > Вспомогательные построения  > Функции вычисления касаний и сопряжений *


## TanLinePointCircle - Получить точки касания окружности и прямой, проходящей через заданную точку

Пример...
Аналог данной функции при использовании Automation - метод ksMathematic2D::ksTanLinePointCircle.
Синтаксис:
```
void TanLinePointCircle (double x,
double y,
double xc,
double yc,
double rad,
int *kp,
double xp,
double yp);
Входные параметры:
x, y    - координаты точки,
xc, yc    - координаты центра окружности,
rad    - радиус окружности.
Выходной параметр:
kp    - число касательных (от 0 до 2),
xp, yp    - координаты точки касания.
```
Примечание:
Построение касательной невозможно в случае, если точка лежит внутри окружности. В противном случае точек касания или две (точка вне окружности), или одна (если точка принадлежит окружности).


## TanLinePointCircle- пример использования

void TanLinePointCircle_Example (void) {
double x[2], y[2];
int k, i;
Circle ( 60, 60, 30, 1);
Point ( 20, 50, 1);
TanLinePointCircle (20, 50, 60, 60, 30, &k, x, y);
gprintf(Количество касаний = %2d, k);
if (k)
for (I=0; i<k; I) {
LineSeg (20, 50, x[i], y[i], 1); /* линия касания */
Point (x[i], y[i], 1); /* точка касания */
}
}; /* TanLinePointCircle_Example */
