Maxa | Дата: Среда, 30.09.2009, 05:48 | Сообщение # 1 |
Школьник
Группа: Администраторы
Сообщений: 22
Статус: Offline
| Немогу найти в манах про использование функции Усечь кривую, а необходимость такая есть. как юзать данную функцию? какие параметры? Для примера: Есть окружность пересеченная отрезком, нужно Усечь нижнюю часть окружности... kscircle(100,100,50,1); kslineseg(40,90,160,100,1);
|
|
| |
Maxa | Дата: Среда, 30.09.2009, 05:49 | Сообщение # 2 |
Школьник
Группа: Администраторы
Сообщений: 22
Статус: Offline
| var kompas:KompasObject; d2d:ksdocument2d; cur,ln:reference; x1,x2,x3,y1,y2,y3:double; m2d:ksMathematic2D; arr:ksdynamicarray; par:ksMathPointParam; begin //подключаемся к компас kompas:=KompasObject(GetActiveOleObject('Kompas.Application.5')); //подключаемся к активному чертежу d2d:=ksdocument2d(kompas.ActiveDocument2D); //рисуем окружность и отрезок cur:=d2d.ksCircle(100,100,50,1); ln:=d2d.ksLineSeg(40,90,160,100,1); //подключаемся к мат вычислениям m2d:=ksMathematic2D(kompas.GetMathematic2D); //параметры точки par:=ksMathPointParam(kompas.GetParamStruct(ko_MathPointParam)); //структура массива точек arr:=ksdynamicarray(kompas.GetDynamicArray(POINT_ARR)); //если пересечение есть if m2D.ksIntersectLinSCir(40,90,160,100,100,100,50,arr)=true then begin //считываем первую точку arr.ksGetArrayItem(0,par); x1:=par.x; y1:=par.y; //считываем вторую точку arr.ksGetArrayItem(1,par); x2:=par.x; y2:=par.y; //усекаем //y2-10 делаем специально, чтобы точка принадлежала нижней части усеченной кривой d2d.ksTrimmCurve(cur,x1,y1,x2,y2,x2,y2-10,1); end;
|
|
| |