Мне кажется, что DC поддерживает только кривые любого вида со сплайнами. Существуют ли какие-либо библиотеки, которые добавляют функциональность Безье, или есть способ преобразовать кривую Безье в сплайн?
Как с помощью wxPython нарисовать кривую Безье по четырем точкам?
comment
Хм ... что ты пытаешься сделать? Асимптота великолепна в графике. Проверьте: asymptote.sourceforge.net/gallery/BezierSurface.asy
- person Hamish Grubijan   schedule 27.02.2010
Ответы (2)
Учитывая 4 контрольные точки, формулу для связанной кубической кривой Безье нетрудно вычислить а>. После вычисления набора точек на кривой можно использовать DC.DrawLines
, чтобы нарисовать его.
Существует реализация на Python для вычисления точек на обобщенных кривых Безье (бесстыдный плагин) здесь. Он обобщен в том смысле, что может принимать произвольное количество контрольных точек (> 2) в качестве входных данных для make_bezier
. Если вам нужна только версия с 4 контрольными точками, вы можете полностью вырезать pascal_row
и заменить
combinations=pascal_row(n-1)
с участием
combinations=(1,3,3,1)
person
unutbu
schedule
27.02.2010
Немного погуглив, думаю, я выберу wx.GraphicsContext, который поддерживает wx.GraphicsPath. Похоже, у него есть именно то, что мне нужно, в дополнение к сглаживанию (согласно этой странице)
person
Bibendum
schedule
27.02.2010
Отличная идея. Это новый способ рисования в wxpython.
- person DrBloodmoney; 27.02.2010