Форум: "Прочее";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
ВнизСмысл параметров эллиптической дуги в vdx-формате Visio 2003 Найти похожие ветки
← →
Cyrax © (2007-02-10 16:33) [0]Скажем, читаю vdx-файл и рисую схему (C#) на форме.
Для рисования дуг методом Graphics.DrawArc(...) нужно знать координаты прямоугольника, в который вписана дуга, начальный угол (startAngle) и изменение угла (sweepAngle). Но в vdx-файле сохраняются другие параметры дуги:
1. Начальная и конечная точки дуги
2. A - The distance from the arc"s midpoint to the midpoint of its chord
3. B - The y-coordinate of an arc"s control point
4. C - The angle of an arc"s major axis relative to the x-axis of its parent
5. D - The ratio of an arc"s major axis to its minor axis. Despite the usual meaning of these words, the major axis does not have to be greater than the minor axis, so this ratio does not have to be greater than 1. Setting this element to a value less than or equal to 0 or greater than 1000 can lead to unpredictable results
Как с помощью этих параметров нарисовать на форме дугу методом Graphics.DrawArc(...) ?
Т.е. фактически из этих параметров нужно получить обычные параметры (прямоугольник, углы)...
← →
Cyrax © (2007-02-10 21:03) [1]выш... напрягаем моск...
← →
Cyrax © (2007-02-11 17:12) [2]dsi
← →
Cyrax © (2007-02-18 10:18) [3]Переадресовываем вопрос default"у...
← →
BOA_KAA © (2007-02-18 10:34) [4]А ты с кем сейчас разговаривал?
← →
Cyrax © (2007-02-19 22:46) [5]А ты с кем сейчас разговаривал?
С Москвой, блин...
← →
default © (2007-02-19 22:53) [6]п-ц Cyrax!!!
← →
Cyrax © (2007-02-19 22:58) [7]default, ясней выражайся, не понимаю...
← →
default © (2007-02-19 23:04) [8]Cyrax © (19.02.07 22:58) [7]
я поторопился подумал тебе разъяснить параметры DrawArc нужно:)
щас подумаю
p.s. с отражением помогло?
← →
default © (2007-02-19 23:18) [9]в GDI+ дуга это кусок эллипса
тут дуга, вероятно, может и не быть куском эллипса и с помошью DrawArc тогда её не нарисовать
нарно надо открыть книгу по комп графике
и посмотреть что там за управляющая точка дуги...и другие премудрости
← →
default © (2007-02-19 23:23) [10]вот тут глянь
http://www.uran.donetsk.ua/~masters/2003/fvti/kudrya/library/nurbcurvrus.htm
может и оно
← →
Cyrax © (2007-02-19 23:23) [11]Речь идёт об эллиптических дугах...
← →
default © (2007-02-19 23:24) [12]Cyrax © (19.02.07 23:23) [11]
ты уверен?
← →
default © (2007-02-19 23:25) [13]к [10]
похоже что то
попробуй разобраться
← →
Cyrax © (2007-02-19 23:29) [14]ты уверен?
Так это ш я сабж придумал - про эллиптические дуги...
попробуй разобраться
Гляну. Тебе ш респект...
← →
default © (2007-02-19 23:40) [15]Cyrax © (19.02.07 23:29) [14]
хотя вряд-ли это то
ты спроси у MBo, он наверняка знает
или на algolist-е том же
← →
default © (2007-02-19 23:41) [16]Cyrax ну отражение-то помогло тебе?
← →
default © (2007-02-20 06:00) [17]Cyrax прикольнись
открыл книгу "математические основы машинной графики"
и там описан придуманный мной алгоритм отражения:) приятно:)
"
отражение относительно произвольной прямой
-перемещение линии и объекта таким образом, чтобы линия прошла через начало координат;
-поворот линии и объекта вокруг точки начала координат до совпадения с одной из координатных
осей;
-отражение относительно координатной оси;
-обратный поворот вокруг начала координат;
-перемещение в исходное попложение."
← →
guav © (2007-02-20 12:20) [18]> [17] default © (20.02.07 06:00)
Это... а зачем столько операций, в GDI+ же можно выполнять свои матрици преобразования, так её можно рассчитать той прямой и выполнить за одну операцию, а потом ещё повторно использовать для других объектов.
← →
default © (2007-02-20 19:54) [19]guav © (20.02.07 12:20) [18]
кури:)
Sub Flip(ByVal gp As GraphicsPath, ByVal x As Integer, ByVal y As Integer, ByVal angle As Single)
Dim mx As New Matrix
mx.Translate(-x, -y, MatrixOrder.Append)
mx.Rotate(-angle, MatrixOrder.Append)
mx.Scale(1, -1, MatrixOrder.Append)
mx.Rotate(angle, MatrixOrder.Append)
mx.Translate(x, y, MatrixOrder.Append)
gp.Transform(mx)
End Sub
← →
Cyrax © (2007-02-26 19:42) [20]Отчёт для Default"a №2
-----------------------
До дуги я пока не дошёл. Занимаюсь другой программерской частью. Скоро к этой дуге вернусь. Там и отпишусь, что к чему...
p.s. Все свои ветки (которые не пропадают чудесным образом) я завершаю...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c