ksIntersectLinSArc

Автор Аleksey, 14.09.04, 09:12:32

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Аleksey

Проблема:
При вычислении точки пересечения отрезка и дуги ВСЕ ТОЧКИ ПЕРЕСЕЧЕНИЯ ОПРЕДЕЛЯЮТСЯ КАК БЕСКОНЕЧНО МАЛЫЕ ИЛИ БОЛЬШИЕ (iPrpPoint.x, iPrpPoint.y). Параметры дуги определяются верно. Подскажите где искать ошибку, решение?
var
iPrpPoint : ksPointParam;
intersectArr : ksDynamicArray;
CurveParExt : ksArcByAngleParam;
...
CurveParExt := ksArcByAngleParam(iKompas.GetParamStruct(ko_ArcByAngleParam));
iDoc.ksGetObjParam(pObjExt, CurveParExt, ALLPARAM);
intersectArr := ksDynamicArray(iKompas.GetDynamicArray(POINT_ARR));
iPrpPoint := ksPointParam(iKompas.GetParamStruct(ko_PointParam));
...            
for i:=0 to count-1 do
begin
if iMath.ksIntersectLinSArc(x1, y1, iPoint.x, iPoint.y,
                        CurveParExt.xc, CurveParExt.yc, CurveParExt.ang1, CurveParExt.ang2,
 CurveParExt.rad, CurveParExt.dir,
                         intersectArr) then
begin
intersectArr.ksGetArrayItem(i, iPrpPoint);
iDoc.ksPoint(iPrpPoint.x, iPrpPoint.y, 5); //
Sn := iMath.ksDistancePntPnt(iPoint.x, iPoint.y, xtest, ytest);
...

Аleksey

откликнитесь, люди добрые!
буду благодарен за любой совет

kosmatenko

чСудя по всему ОШИБКАв самом начале
var
iPrpPoint : ksPointParam

должно БЫТЬ
var
iPrpPoint : MathPointParam

ведь  MathPointParam просто параметры точки x и y,
а ksPointParam параметры графического обьекта типо ТОЧКА

всего НАИЛУЧШЕГО