• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Точка на кривой, на определенном расстоянии от начала по длине кривой

Автор ZorGR, 22.05.18, 08:04:19

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

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

ZorGR

Есть кривая в 3D (сплайн).
Нужно поставить через API точку на кривой на определенном расстоянии от начала (расстояние измеряется по длине кривой).

Получаю от кривой интерфейс ksCurve3D.
Получаю TMin, TMax, L (полная длина кривой).
Долее вычисляю по формуле необходимый параметр t = (TMax - TMin) * l / L, где l необходимая длина.
Используя GetPoint нахожу координаты точки по вычисленному t.
Строю точку по координатам.

Теперь если измерить расстояние от начала кривой до построенной точки (по кривой), то оно не будет равно заданному (отличие на несколько миллиметров).

Вопрос. Мой способ некорректный? Как правильно построить точку на необходимом расстоянии?

Так и стройте на кривой по смещению.
if pPoints3D<>nil then pPoint3D:=pPoints3D.Add;
if pPoint3D<>nil then
begin
     pPoint3D.ParameterType:=ksPCurve;
     pPoint3DParamCurve:=pPoint3D.Parameters as IPoint3DParamCurve;
     if pPoint3DParamCurve<>nil then
      begin
          pPoint3DParamCurve.SetCurveObject(Obj as IModelObject);
          pPoint3DParamCurve.Offset:=0;
          pPoint3DParamCurve.Direction:=True;
          pPoint3D.Update;                 
      end;
end;
+ Благодарностей: 1

ZorGR