Определение точки (точек)

  • Автор темы artiom_kh
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

artiom_kh

В декартовых координатах задана окружность с центром tCircleCenter(x,y) и радиусом nCircleRadius. Имеется прямая описанная координатами (nXStart,nYStart) и (nXEnd,nYEnd). Необходимо определить имеются ли точки (точка) пересечения прямой с окружностью, и если имеются - то получить их координаты. Начал всё делать в виде:

Function TCircledSeries.CorrectXYcoordByCircleArea(tCircleCenter:TPoint;nCircleRadius:Int
eger;var nXStart,nYStart,nXEnd,nYEnd:Integer):Boolean;
var ptStartInCircle,ptEndInCircle:boolean;
begin

//detect start and end point in circle
ptStartInCircle:=((((nXStart-tCircleCenter.x)*(nXStart-tCircleCenter.x))-((nYStart-tCircleCenter.y)*(nYStart-tCircleCenter.y)))<=(nCircleRadius*nCircleRadius));
ptEndInCircle:=((((nXEnd-tCircleCenter.x)*(nXEnd-tCircleCenter.x))-((nYEnd-tCircleCenter.y)*(nYEnd-tCircleCenter.y)))<=(nCircleRadius*nCircleRadius));

т.е. через ptStartInCircle и ptEndInCircle определяю, лежат ли точки старта и конца прямой внутри окружности, а дальше... :unsure: Подскажите плиз.
 
D

Dmirys

Из математики: Пересечение фигур можно определить, решив уравнение. Если у них будут общие корни, значит пересекаются.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!