A
artiom_kh
В декартовых координатах задана окружность с центром tCircleCenter(x,y) и радиусом nCircleRadius. Имеется прямая описанная координатами (nXStart,nYStart) и (nXEnd,nYEnd). Необходимо определить имеются ли точки (точка) пересечения прямой с окружностью, и если имеются - то получить их координаты. Начал всё делать в виде:
т.е. через ptStartInCircle и ptEndInCircle определяю, лежат ли точки старта и конца прямой внутри окружности, а дальше... Подскажите плиз.
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 определяю, лежат ли точки старта и конца прямой внутри окружности, а дальше... Подскажите плиз.