Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: knightrocker от 15-06-2018, 20:55:04

Название: Как пользоваться функцией ellipticalArc
Отправлено: knightrocker от 15-06-2018, 20:55:04
Задаю в Автокаде две точки - начала и конца прямой:
AcGePoint3d ptStart, ptEnd;

Хочу чтобы относительно указанного направления прямой В ОБРАТНУЮ СТОРОНУ нарисовался Полукруг с центром круга а точке ptStart с указанным значением радиуса.

Подскажите пожалуйста, как нарисовать вообще хоть какую-то кривую / полукруг, в принципе, ибо по описанию к функции я не могу понять как нарисовать что-то кроме прямой, хотя и перебираю различные входные параметры ...

Код - C++ [Выбрать]
  1.         double gradusStr = 100;
  2.         double gradusEnd = 50;
  3.         double gradusTil = 90;
  4.         double radianStr = (gradusStr * M_PI) / 180.0;
  5.         double radianEnd = (gradusEnd * M_PI) / 180.0;
  6.         double radianTil = (gradusTil * M_PI) / 180.0;
  7.  
  8.         AcGeVector3d direction = (ptStart - ptEnd); //.normalize();
  9.  
  10.         // рисуется прямая
  11.         mode->geometry().ellipticalArc(ptStart, direction, 140, 40, radianStr, radianEnd, radianTil);
  12.         // тоже рисуется прямая ...
  13.         mode->geometry().ellipticalArc(ptStart, direction, 0, 40, gradusStr, gradusEnd, gradusTil);
  14.  
  15.  

по описанию параметров функции ничего не могу понять ... может не стоило браться под конец дня, но всё же ...

Код - C++ [Выбрать]
  1. virtual Adesk::Boolean  ellipticalArc
  2. (
  3.   const AcGePoint3d&         center, // центр на сколько я понимаю будущей окружности или чего ?
  4.   const AcGeVector3d&        normal, // вектор нормали
  5.   double                     majorAxisLength, // длина большей оси
  6.   double                     minorAxisLength, // длина меньшей оси
  7.   double                     startDegreeInRads, // начальный угол в радианах, но относительно чего
  8.   double                     endDegreeInRads,   // конечный угол в радианах, но относительно чего
  9.   double                     tiltDegreeInRads,  // угол .... наклона / касательной ???
  10.   AcGiArcType                arcType = kAcGiArcSimple // параметр заполнения как я понял
  11. ) const = 0 ;
  12.  
  13.  
Название: Re: Как пользоваться функцией ellipticalArc
Отправлено: Александр Ривилис от 15-06-2018, 23:41:04
knightrocker,
1. Прочитай у меня в подписи о том, как следует форматировать код на форуме и соблюдай это правило.
2.
может не стоило браться под конец дня, но всё же ...
Вполне возможно. Особенно если не будешь объяснять что и где ты собираешься рисовать. Если ты хочешь нарисовать полукруг, то почему у тебя оси имеют разную длину? И почему не воспользоваться методом circularArc() вместо ellipticalArc()?
Название: Re: Как пользоваться функцией ellipticalArc
Отправлено: knightrocker от 16-06-2018, 10:41:58
knightrocker,
1. Прочитай у меня в подписи о том, как следует форматировать код на форуме и соблюдай это правило.
2.
может не стоило браться под конец дня, но всё же ...
Вполне возможно. Особенно если не будешь объяснять что и где ты собираешься рисовать. Если ты хочешь нарисовать полукруг, то почему у тебя оси имеют разную длину? И почему не воспользоваться методом circularArc() вместо ellipticalArc()?

Александр, извиняюсь за оплошность.

Перешёл по ссылке в подписи: http://adn-cis.org/forum/index.php?topic=1829.msg7154#msg7154

На месте превью видео увидел следующее:
"
The ID for this embedded ScreenCast is invalid.
Learn more about Screencast ...

:(
"
Название: Re: Как пользоваться функцией ellipticalArc
Отправлено: Александр Ривилис от 16-06-2018, 13:32:07
Перешёл по ссылке в подписи: http://adn-cis.org/forum/index.php?topic=1829.msg7154#msg7154

На месте превью видео увидел следующее:
"
The ID for this embedded ScreenCast is invalid.
Learn more about Screencast ...

:(

Уже исправлено.