Результат ksTrimmCurve

Автор Mihonius, 22.04.13, 15:08:51

« назад - далее »

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

Mihonius

Добрый день уважаемые форумчане!
Подскажите пожалуйста, была нарисована окружность (ksCircle), потом обрезана (ksTrimmCurve), вопрос чем будет результат?
Присваиваю указатель на усеченную кривую, и мне нужно получить все параметры этого объекта, а именно начало, конец.
Пробовал использовать ksArcByPointParam, значения равны нулю? Написал вот такую функцию:

function Couple(idoc: ksDocument2D;  iKompas: KompasObject; p1, p2: reference): reference;
var iMathematic2D: ksMathematic2D;
    parms1, parms2: ksArcByPointParam;
    cp : integer;
begin
  iDynamicArray := ksDynamicArray(iKompas.GetDynamicArray( POINT_ARR ));
  iMathPointParam := ksMathPointParam(iKompas.GetParamStruct( ko_MathPointParam ));
  iMathematic2D := ksMathematic2D(iKompas.GetMathematic2D);
  if (iMathematic2D = nil) then exit;
// считываем параметры
  parms1 := ksArcByPointParam(iKompas.GetParamStruct(ko_ArcByPointParam));
  parms2 := ksArcByPointParam(iKompas.GetParamStruct(ko_ArcByPointParam));
  if (p1<>0) and (p2<>0) then
  begin
  idoc.ksGetObjParam(p1, parms1, ALLPARAM);
  idoc.ksGetObjParam(p2, parms2, ALLPARAM);
  cp:=iMathematic2D.ksIntersectCurvCurv(p1,p2,iDynamicArray);
      if cp = 1  then
      begin
      //ShowMessage('есть пересечение');
      iDynamicArray.ksGetArrayItem( 0, iMathPointParam );
      idoc.ksTrimmCurve(p1,parms1.x1, parms1.y1, parms1.x2, parms1.y2, iMathPointParam.x, iMathPointParam.y,1);
      idoc.ksTrimmCurve(p2,parms2.x1, parms2.y1, parms2.x2, parms2.y2, iMathPointParam.x, iMathPointParam.y,1);
      end
      else
      begin
        //ShowMessage('не пересекаються');
        idoc.ksPoint(parms2.x1, parms2.y1,1);
        idoc.ksPoint(parms1.x2, parms1.y2,2);
        idoc.ksLineSeg(parms1.x2, parms1.y2,parms2.x1, parms2.y1,1);
      end;
  end;
end;

function Couple(idoc: ksDocument2D;  iKompas: KompasObject; p1, p2: reference): reference;
p1, p2 - Указатели на дуги?

idoc.ksGetObjParam(p1, parms1, POINT_ARC_PARAM);
idoc.ksGetObjParam(p2, parms2, POINT_ARC_PARAM);
+ Благодарностей: 1