Форум: "Основная";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизPolyBezierTo Найти похожие ветки
← →
Rel_ (2003-09-08 09:37) [0]Мастера, отсоветуйте что-нибудь.
Есть массив точек. Почему функция Polyline отрабатывает отлично, а функция PolyBezierTo либо ничего не рисует, либо в качестве первой точки пытается определить точку (0,0) ???
Массив у меня искусственный - т.е. это не стандартный объек, а созданный одним знакомым новый класс.
← →
muravey (2003-09-08 09:39) [1]как выглядит код?
← →
MBo (2003-09-08 09:49) [2]PolyBezierTo рисует от ТЕКУЩЕГО положения пера. Если оно не было задано явно (MoveTo) или косвенно (ф-ции, меняющие позицию гр. вывода), то начало в 0,0.
Учти также, что число точек должно быть кратно 3.
← →
Rel_ (2003-09-08 10:19) [3]to MBo © ПРОСТО ОГРОМНОЕ СПАСИБО - ни то, ни другое я не учёл !!!
Попробовал со стандартным массивом (простите, что код на билдере)
TPoint a[5];
a[0] = TPoint(100,100);
a[1] = TPoint(50,20);
a[2] = TPoint(100,10);
a[3] = TPoint(200,80);
a[4] = TPoint(150,120);
a[5] = TPoint(110,160);
::PolyBezierTo(Canvas->Handle,&a[0], 5); - не работает
исправил на
::MoveToEx(Canvas->Handle, 100,100, 0);
::PolyBezierTo(Canvas->Handle,&a[0], 6);
- заработало !!!
Пример кода
← →
Rel_ (2003-09-08 10:43) [4]Возник ещё вопросик по данной теме:
В C# я видел, что в ф-ю, строящую кривую Безье можно передавать параметр точности, который определяет прилипание кривой к точкам. Если он очень велик, то получается почти полилиния с слегка сглаженным углами, если мал, то получается плавная кривая, прооходящая между точками.
Как энто реализовать в делфе или средствами API
← →
MBo (2003-09-08 10:54) [5]>в C# я видел, что в ф-ю, строящую кривую Безье можно передавать параметр точности,
Там (GDIPlus) не Безье, а (кардинальные) сплайны.
Если не использовать GDIPlus, то можно самому рассчитать сплайны нужной формы, перевести их в форму Безье и отрисовать.
А заголовки GDIPlus лежат на http://www.progdigy.com.
← →
ZEE (2003-09-08 10:57) [6]
var a:array[0..5]of TPoint;
...
PolyBezierTo(Canvas.Handle, a,5);
понятно?..
← →
panov (2003-09-08 11:48) [7]>Rel_ (08.09.03 10:43) [4]
Не надо спамить.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c