Сейчас на форуме: tyns777 (+5 невидимых)

 eXeL@B —› Программирование —› помогите с векторной графикой
Посл.ответ Сообщение


Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 17 сентября 2007 10:17
· Личное сообщение · #1

суть проблемы: в универе дали задание написать простой редактор векторной графики (не растровой!). мож кто занимался уже етим, поделитесь опытом. яп - microsoft visual c#.

-----
Лень - это подсознательная мудрость




Ранг: 7.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 сентября 2007 17:07
· Личное сообщение · #2

как я помню, это типа Paint'a ?



Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 17 сентября 2007 17:34
· Личное сообщение · #3

а Paint разве вектор??
я не писал конечно никогда.. но имхо...
1. разработай способ хранения :
имхо
1 тип фигуры -линия, круг, кривая
2 если линия то координаты если круг то радиус + эллипсовидность - см уравнения вышки
3 если кривая.. взьми кривые безье (тоже из вышки) там тоже узловые точки

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




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 17 сентября 2007 18:07 · Поправил: depler
· Личное сообщение · #4

Пральна! paint - не вектор, это растровая графа.

1. разработай способ хранения :
имхо


Формат хранения есть - .wmf (Windows Meta File), его мне нужно читать(это я умею), редактировать, и сохранять(вот это он делать ну никак не хочет)

1 тип фигуры -линия, круг, кривая
Это я понял и знаю как сделать, но при рисовании оно его все равно как растровую воспринимает.

Исходник че я наваял можете посмотреть дальше дело не двигается

2 если линия то координаты если круг то радиус + эллипсовидность - см уравнения вышки
3 если кривая.. взьми кривые безье (тоже из вышки) там тоже узловые точки

Это надо подумать(можно и головой), но думаю разберусь.

это имхо на диплом или хорошую курсовую тянет
вот-вот, она самая

Мне бы тока понять как в .wmf сохранять, и еще проблемы с рисованием я использую CreateGraphics это прально? Изображение при минимизации окна падает. Раньше кодил на Delph, терь очень непривычно.

-----
Лень - это подсознательная мудрость





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 17 сентября 2007 18:07
· Личное сообщение · #5

depler
Дык в Borland delphi или Builder c++ есть в папке Demos (демки) пример графического редактора: там и линия, и круг, и квадрат...и т.д...




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 17 сентября 2007 18:11
· Личное сообщение · #6

Mavlyudov
Еще раз гарю, мне редактор нуже не а-ля Paint, а векторную графу
Если не знаете чем отличаются - google в помощь

-----
Лень - это подсознательная мудрость





Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 17 сентября 2007 18:16
· Личное сообщение · #7

Вод исходник че получилось, бинарник тоже есть

6897_17.09.2007_CRACKLAB.rU.tgz - XPaint.7z

-----
Лень - это подсознательная мудрость





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 17 сентября 2007 18:29
· Личное сообщение · #8

depler
твой бинарник без Microsoft .NET Framework 2.0 не будет пахать???
он у меня ругается на mscoee.dll




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 17 сентября 2007 18:37
· Личное сообщение · #9

не будет поставь net framework

-----
Лень - это подсознательная мудрость





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 17 сентября 2007 18:53
· Личное сообщение · #10

depler
ща..5 мин



Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 17 сентября 2007 20:48
· Личное сообщение · #11

depler, ужасный исходник. Но редактора ещё очень далеко.
Продумай объектную модель, иерархию классов, какие типы фигур будут, как их хранить будешь, как рисовать. После этого можешь начинать писать код.
Кстати, лучше сразу называть контролы вменяемыми именами.



Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 17 сентября 2007 21:07 · Поправил: Halt
· Личное сообщение · #12

ViSoR пишет:
Продумай объектную модель, иерархию классов, какие типы фигур будут, как их хранить будешь, как рисовать. После этого можешь начинать писать код.


да имхо тут заморачиваться не стоит линия круг кривая имхо этого будет за глаза.....

depler
ну тут ViSoR отчасти прав.. выглядит то это как растровый редактор только тебе надо будет хранить координаты узловых точек.. и дать возможность эти точки двигать.. вот тут надо покумекать как это сделать.... а потом по этим координатам перерисовать фигуру...точнее все фигуры....

Хотя если курсовая то не заморачивайся.. храни только узловые точки и при клике по ним определяй что это за узловая точка (по координатам) и что за фигура - по узловой точке.. потом при повторном клике перемещай выбранную узловую точку и пересчитывай фигуру (круг так круг , линия так линия) и отрисовывай ее по новой ну и все остальные соответственно... так что отличие от растра у тебя будет только в этих узловых точках + конечно в формате хранения

исходник пока не смотрел , сорри, некогда...




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 17 сентября 2007 22:14
· Личное сообщение · #13

я этот исходник 15 мин писал принцип то я и сам понял я тока не пойму мне че формат вмф вручную разгребать? может покажете пример сохранения в этот формат произвольной прямой?

-----
Лень - это подсознательная мудрость





Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 17 сентября 2007 22:20
· Личное сообщение · #14

этот тюремный си формат вмф понимает, на форму я его загрузить могу, но если добавить прямую например и попробовать сохранить то вылетает ошибка, как я понял изза того, что он его автоматически в векторную графу не преобразуется

-----
Лень - это подсознательная мудрость




Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 18 сентября 2007 12:31
· Личное сообщение · #15

depler, придумай свой формат, хоть в виде текстового файла. EMF разбирать то ещё удовольствие




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 18 сентября 2007 12:41
· Личное сообщение · #16

в том то и дело что условие задания - чтение и запись в этот формат

-----
Лень - это подсознательная мудрость




Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 18 сентября 2007 13:33
· Личное сообщение · #17

Тогда тебе нужно читать описание класса System.Drawing.Imaging.Metafile
Там есть описание парсинга файлов.




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 23 сентября 2007 19:06
· Личное сообщение · #18

ну его на этот Windows Meta File, легче препода послать и взять другое задание

-----
Лень - это подсознательная мудрость



 eXeL@B —› Программирование —› помогите с векторной графикой
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати