Page 8 of 10

Re: формат векторной графики

Posted: Tue Nov 02, 2010 8:45 pm
by Albom

Re: формат векторной графики

Posted: Wed Nov 03, 2010 10:40 am
by Asper
Там смотри "Квадратичные кривые", именно их рисует данный алгоритм.

Re: формат векторной графики

Posted: Wed Nov 03, 2010 6:27 pm
by art_zh
Asper wrote:Для построения дуги нужны тригонометрические функции.

Code: Select all

x = R * cos(A) + X
y = R * sin(A) + Y
...
и всего делов:

Code: Select all

fld   [A]
FSINCOS
fld   [R]
fmul  st1, st0
fmulp st2, st0
fadd  [X0]
fistp  [x]
fadd  [Y0]
fistp  [y]

Re: формат векторной графики

Posted: Wed Nov 03, 2010 6:40 pm
by Asper
art_zh
Хорошо. Выбор за Gluk'ом.

Re: формат векторной графики

Posted: Fri Nov 05, 2010 12:19 am
by Gluk
Asper, просто бывают такие дуги (и не то чтобы очень редко встречаются), что почти окружности, и тогда вместо восьми кривых Безье в файле достаточно будет описать одну лишь дугу. При этом для дуги нужно указать не больше данных, чем для одной кривой Безье. Да даже пусть при отрисовке дуга превращается в кривые, и рисуется как кривые, но в файле, думаю, выгоднее описать именно дугу

Re: формат векторной графики

Posted: Sat Nov 27, 2010 11:31 pm
by Gluk
я тут еще подумал, не нужны отдельно контурные объекты. Нужно два объекта:
-замкнутый объект произвольной формы
-разомкнутый объект произвольной формы
, у которых в параметрах будет находиться строка, описывающая их форму. При этом все размеры формы можно отсчитывать в относительных координатах (от положения объекта), чем экономить. Для задания формы - строка, имеющая похожий на общий формат. А форму как раз описывают контурные (и только контурные) объекты, перечисленные выше.
Отдельно замкнутые и незамкнутые - чтобы не тратить биты на указание цвета фона, который не нужен для разомкнутых объектов, ну и для замкнутых можно у последнего контурного элемента не указывать последнюю координату - она будет равна начальной для контура. А это уже не один бит, а как минимум восемь (как максимум - неограниченно, мало ли насколько велико поле для рисования)

Re: формат векторной графики

Posted: Sun Nov 28, 2010 4:23 am
by lev
В обычных векторных пакетах у объекта есть флаг замкнутости. А для заливки есть указания её типа - сплошная, градиентная, ещё какая-то и отсутствие заливки. Для разомкнутого объекта с сохранённой заливкой она помнится, но не рисуется, а уже при их замыкании рисуется. В некоторых пакетах есть опция заливать-не заливать разомкнутые объекты, т.е. есть цвет - заливаем, при этом при наличии обводки замыкающий отрезок не прорисовывается (имхо неудобно, я эту опцию отключаю).

Re: формат векторной графики

Posted: Sun Nov 28, 2010 6:52 pm
by Gluk
lev, при чем здесь векторные пакеты вообще? В них работа организовывается обычно независимо от формата выходного файла, а уже при экспорте/сохранении внутренний формат перестраивается в выходной. Главное, чтобы последний имел максимум возможностей первого

Re: формат векторной графики

Posted: Sun Nov 28, 2010 11:41 pm
by lev
при чем здесь векторные пакеты
Чтобы не изобретать всё заново, чтобы получить схожий функционал и облегчить конверсию в существующие форматы (совместимость), если в будущем захочется.

Re: формат векторной графики

Posted: Mon Nov 29, 2010 7:59 am
by Gluk
Понял что имелось ввиду, что для незамкнутых объектов не сохраняются данные о цвете заливки, мол может быть, когда-нибудь, кто-нибудь будет редактировать этот документ, и, может быть, захочет, замкнуть объект и раскрасить его, а данных о цвете нет.
Ну что тут можно сказать, а вдруг кто-то из квадрата захочет эллипс сделать? А данных о радиусах нет(
Вы знаете алгоритмы заливки разомкнутых областей? Лично я - нет. Залить можно замкнутый объект, у которого одна из границ невидима, так это и BFG(VS) будет позволять.

Re: формат векторной графики

Posted: Mon Nov 29, 2010 7:19 pm
by lev
Вы знаете алгоритмы заливки разомкнутых областей? Лично я - нет.
Тот же самый, что и для замкнутых. Контур автоматически замыкается отрезком и заливается фоном. Обводка отрисовывается, но не замыкается. Программа при этом продолжает считать объект незамкнутым. (Это мы наделяем слова смыслом). В программе задаётся опция - Заливать-не заливать открытые кривые.
На скриншоте пример кривой и кусочек интерфейса CorelDRAW 9.

Re: формат векторной графики

Posted: Tue Nov 30, 2010 9:13 am
by Gluk
lev, спвсибо за иллюстрацию того текста, который шел сразу за процитированным

Re: формат векторной графики

Posted: Thu Dec 02, 2010 10:24 pm
by Gluk
в общем, если больше возражений нет, берем пока в мейнстрим.. Дальше надо выделить какие-либо папаметры, которые будут общими для некоторых групп думаю, стоит начать с объектов, во-первых, графических, во-вторых, замкнутых (соответственно, имеющих площадь).
Примерно такие:
-цвет заливки
-текстура заливки
-цвет обводки
-толщина обводки
-кисть обводки

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

кто что может добавить на данном этапе?

Re: формат векторной графики

Posted: Thu Jan 20, 2011 2:23 pm
by SoUrcerer
Немного отойду от темы...
У меня имеется множество векторных шрифтов в формате SVG. Например, буква n:

Code: Select all

 <path
       d="M 135,0 V 1062 H 297 V 911 q 117,175 338,175 96,0 176,-34 80,-34 121,-91 41,-57 56,-133 10,-50 10,-175 V 0 H 818 v 646 q 0,110 -21,164 -21,54 -74,87 -53,33 -126,33 -115,0 -198,-73 -83,-73 -84,-277 V 0 H 135 z"
       style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
Можно ли будет из такого формата перевести шрифты в новый?
[offtop]Пошел искать описания путей в SVG[/offtop]

Re: формат векторной графики

Posted: Thu Jan 20, 2011 2:30 pm
by SoUrcerer
Хм, да тут все просто оказывается... *Пошел выкуривать мануалы*
Тут все подробно: http://www.w3.org/TR/SVG11/paths#PathDa ... nformation