что такое вектор
что такое вектор
добрый день всем участникам форума.
Вопрос может показаться несколько странным, но все же - что такое вектор? например, если я хочу создать программно новый класс, который рисует линию (вектор) между двумя точками - получается, что мне нужно будет все равно "растеризовывать" представление линии до точек ее составляющих и задавать координаты х и у для каждой такой точки? т.е. векторная линия все равно будет "растром" в каком-то смысле слова?
или нет?
хотелось бы услышать ваши мнения по данному вопросу?
(только не надо комментариев, что в большинстве языков такой класс уже создан и париться не стоит). Этот вопрос - скорее теоретический, просто на таком примере проще объяснить.
Вопрос может показаться несколько странным, но все же - что такое вектор? например, если я хочу создать программно новый класс, который рисует линию (вектор) между двумя точками - получается, что мне нужно будет все равно "растеризовывать" представление линии до точек ее составляющих и задавать координаты х и у для каждой такой точки? т.е. векторная линия все равно будет "растром" в каком-то смысле слова?
или нет?
хотелось бы услышать ваши мнения по данному вопросу?
(только не надо комментариев, что в большинстве языков такой класс уже создан и париться не стоит). Этот вопрос - скорее теоретический, просто на таком примере проще объяснить.
-
- Завсегдатай
- Сообщения: 386
- Зарегистрирован: 07 фев 2004, 14:31
- Репутация: 7
- Откуда: Лозанна
- Контактная информация:
-
- Активный участник
- Сообщения: 143
- Зарегистрирован: 10 мар 2004, 08:07
- Репутация: 10
- Откуда: Redlands
- Контактная информация:
Нет уж, давайте котлеты отдельно и мухи отдельно.
Если мы говорим о конечном изображении, то да, в итоге оно окажется растровым, "пикселированным", хоть на мониторе (по природе монитора), хоть на распечатке (по природе принтера).
Но если мы говорим об объекте, из которого получается производный продукт (изображение), то в полную силу вступает понятие именно вектора.
Основой всех примитивов сложнее точки (линий и полигонов любой конфигурации) является отрезок, т.е. участок прямой между двумя точками. Каждая из этих двух точек имеет X и Y, и комбинация этих двух иксов и игреков собственно и задаёт ВЕКТОР. И в итоге всё строится из одних векторов, без каких-либо растров.
Иногда и отдельно взятую точку интерпретируют как объект, заданный вектором, отложенным из начала координат (0,0) при помощи значений X и Y, но на мой личный взгляд это не всегда оправданное усложнение понятийного аппарата.
Конечно, если вы задаёте метод, который визуализирует векторный объект, то он должен будет транслировать объект в растр, однако это не свидетельствует о растровой природе векторных объектов. Например, вы выводите на монитор один и тот же объект при разном увеличении - итоговое растровое представление будет разное, а объект-то остаётся один и тот же.
Если мы говорим о конечном изображении, то да, в итоге оно окажется растровым, "пикселированным", хоть на мониторе (по природе монитора), хоть на распечатке (по природе принтера).
Но если мы говорим об объекте, из которого получается производный продукт (изображение), то в полную силу вступает понятие именно вектора.
Основой всех примитивов сложнее точки (линий и полигонов любой конфигурации) является отрезок, т.е. участок прямой между двумя точками. Каждая из этих двух точек имеет X и Y, и комбинация этих двух иксов и игреков собственно и задаёт ВЕКТОР. И в итоге всё строится из одних векторов, без каких-либо растров.
Иногда и отдельно взятую точку интерпретируют как объект, заданный вектором, отложенным из начала координат (0,0) при помощи значений X и Y, но на мой личный взгляд это не всегда оправданное усложнение понятийного аппарата.
Конечно, если вы задаёте метод, который визуализирует векторный объект, то он должен будет транслировать объект в растр, однако это не свидетельствует о растровой природе векторных объектов. Например, вы выводите на монитор один и тот же объект при разном увеличении - итоговое растровое представление будет разное, а объект-то остаётся один и тот же.
-
- Завсегдатай
- Сообщения: 386
- Зарегистрирован: 07 фев 2004, 14:31
- Репутация: 7
- Откуда: Лозанна
- Контактная информация:
к вопросу о том, что все строится из одних векторов - а как строится сам примитив вектора? вот в чем интерес-то. для примера вот такая ссылка:
http://www.gamedev.net/reference/articl ... cle319.asp
или вот такой алгоритм:
Или вот такой
по сути что представляет этот алгоритм? рисование линии (вектора) "по ступенькам", пиксел за пикселем.
http://www.gamedev.net/reference/articl ... cle319.asp
или вот такой алгоритм:
Код: Выделить всё
Begin {Bresenham for lines with slope between 0 and 1}
a := ABS(xend - xstart);
b := ABS(yend - ystart);
d := 2*b - a;
Incr1 := 2*(b-a);
Incr2 := 2*b;
If xstart > xend Then
x := xend;
y := yend
Else
x := xstart;
y := ystart
End
For I := 0 to a Do
Plot(x,y);
x := x + 1;
If d >= 0 Then
y := y + 1;
d := d + incr1
Else
d := d + incr2
End
End {For Loop}
End {Bresenham}
Код: Выделить всё
Procedure DDA(X1,Y1,X2,Y2 :Integer);
Var Length, I :Integer;
X,Y,Xinc,Yinc :Real;
Begin
Length := ABS(X2 - X1);
If ABS(Y2 - Y1) > Length Then
Length := ABS(Y2-Y1);
Xinc := (X2 - X1)/Length;
Yinc := (Y2 - Y1)/Length;
X := X1;
Y := Y1;
For I := 0 To Length Do
Begin
Plot(Round(X), Round(Y));
X := X + Xinc;
Y := Y + Yinc
End {For}
End; {DDA}
-
- Гуру
- Сообщения: 852
- Зарегистрирован: 15 сен 2005, 13:19
- Репутация: 6
- Откуда: москва
- Контактная информация:
Интересный вопрос - помню, в былые годы
рубились на эту тему и даже статьи сочиняли - что первично, вектор или растр? Щас как-то это все угасло, и вряд ли стоит поднимать с нуля, как и главный философский вопрос, асолютного решения это не имеет. А лучше вспомнить, как в реальности обстоит:
- и раньше многие плоттеры рисовали вектора, и сейчас многие устройства почти до конца работают с ними, и эти технологии бурно развиваются (PS, PDF)
- то, что растеризация проиcходит в конце цикла, на бумаге или экране, не делает ее главным, определяющим процессом, скорее наоборот. Этот "парадокс" можно рассматривать в плане сознательного огрубления "идеальных" векторных картин в угоду сиюминутности
И делается это отлаженными десятилетиями алгоритмами, заложенными в драйверы устройств, об чем тут нынче беспокоиться?
- созидательный процесс в нашем деле по большей части устроен со времен чертежей Меркатора "векторно". Растровые подходы (вроде работы с кистью) встречаются нечасто, цикл приличного предприятия очевиден - получив растр, его тут же сканируют, векторизуют, и держат таким вечно. Я не знаю ни одной удачной попытки наладить растровый или хотя бы гибридный картографический цикл. Сам в свое время отдал этому должное, это заманчиво с многих позиций, но малоэффективно.
А как там в конкретной процедурке при выводе закручено, разве так уж это важно? Много ли карт сделано в фотошопе? Хотя именно сейчас я как раз там в нем сижу и делаю, очень изящно, мне нравится, но... это не эффективно.
Вот пример с гуглом, это уже что-то...
- и раньше многие плоттеры рисовали вектора, и сейчас многие устройства почти до конца работают с ними, и эти технологии бурно развиваются (PS, PDF)
- то, что растеризация проиcходит в конце цикла, на бумаге или экране, не делает ее главным, определяющим процессом, скорее наоборот. Этот "парадокс" можно рассматривать в плане сознательного огрубления "идеальных" векторных картин в угоду сиюминутности

- созидательный процесс в нашем деле по большей части устроен со времен чертежей Меркатора "векторно". Растровые подходы (вроде работы с кистью) встречаются нечасто, цикл приличного предприятия очевиден - получив растр, его тут же сканируют, векторизуют, и держат таким вечно. Я не знаю ни одной удачной попытки наладить растровый или хотя бы гибридный картографический цикл. Сам в свое время отдал этому должное, это заманчиво с многих позиций, но малоэффективно.
А как там в конкретной процедурке при выводе закручено, разве так уж это важно? Много ли карт сделано в фотошопе? Хотя именно сейчас я как раз там в нем сижу и делаю, очень изящно, мне нравится, но... это не эффективно.
Вот пример с гуглом, это уже что-то...
-
- Активный участник
- Сообщения: 143
- Зарегистрирован: 10 мар 2004, 08:07
- Репутация: 10
- Откуда: Redlands
- Контактная информация:
-
- Завсегдатай
- Сообщения: 386
- Зарегистрирован: 07 фев 2004, 14:31
- Репутация: 7
- Откуда: Лозанна
- Контактная информация:
честно? не знаю. на мой взгляд именно строится, но готова выслушать другие предложения;)в приведённых алгоритмах мы отвечаем на вопрос как строится, или как отображается векторный примитив?
С утверждением, что эта тема интересна именно в "угоду сиюминутности" - полностью согласна и изобретать велосипед не собираюсь:). просто любопытно. и пока еще вроде не оффтоп.
нуу, вот тут готова поспорить - анализ данных - именно растровых - все-таки все мы использовали, используем и будем использовать. И сравнивать его с работой кистью, по-моему, несправедливо. Функционал здесь не маленький - для примера можно вспомнить тот же модуль grid для Arcinfo (с более чем 200ми команд), или такое полностью растровое ПО как Idrisi - кстати говоря, оооочень широко используемое в научном сообществе для решения большого круга аналитических задач и моделирования. Про космические снимки и все что с ними связано даже не начинаю говорить...Растровые подходы (вроде работы с кистью) встречаются нечасто,
И опять-таки - посмотрим на тенденции в мире геоПО - все улучшающаяся поддержка работы с растрами и возможность создания базы растровых геоданных от ESRI, выпуск Oracle Spatial GeoRaster в 1-2 релизах Oracle10g, 9ый выпуск Erdas Imagine ну и т.д.
Так что сдавать концепцию растровых данных в архив мне кажется преждевременно и необосновано.
Но, чтобы не выглядеть предвзято, замечу - именно задача определяет то, какое решение выбрать и какой формат использовать. И также как мы с вами не стали бы носить шубу летом,а шорты зимой, не стоит отдавать должное тому или другому формату, просто потому что "шорты" легче надеть, а "шуба" выглядит красивше.

Последний раз редактировалось Анна 11 фев 2006, 03:34, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 852
- Зарегистрирован: 15 сен 2005, 13:19
- Репутация: 6
- Откуда: москва
- Контактная информация:
нет-нет, Анна, я как раз писал держа "в уме" этот громадный кусок. В котором ваш сайт безусловно один из лидеров по накоплению опыта. Однако тут ситуация такова, что первичный материал имеет такую растровую форму, и вы вынуждены, следовательно, так его и обрабатывать. Это обработка, анализ, но не картография в классическом понимании, которая вся чертежная. После этой обработки все равно вы склонны будете сделать ВЕКТОРНЫЙ результат, чтобы его хранить и подавать пользователю в виде линий, границ, по ряду причин, из которых главный - привычка пользователя. Чертежу интуитивно больше доверия, чем рисунку.
Нам как-то ДВГУ прислал ступенчатую послерастровую карту растительности... Наши завыли, затопали ногами, и мы с месяц ломали голову, "как сгладить ступенчатые полигоны"
Слава богу, авторы согласились сделать это сами заново.
Есть впрочем, попытки сделать и картографию растровой - именно рисовать кистью, отмывка рельефа та же, фотокарты, и прочее. Но сколько их ни воздымали, пока они успеха не имеют - даже после гугла народ требует карты с номерами домов и надписями. нет привычки, словом. Всем нужно точно, конкретно, "скоко вешать граммов", никто не хочет включать воображение.
Кстати, ориентироваться по плановому снимку непросто, нужен опыт. Например, вы едете зимой, а снимок-то летний!!! По векторной карте гораздо проще. А вот по панораме куда привычней любому... Раньше такие карты бывали даже у ГУГК, куда-то пропали теперь.
Впрочем, это уже явный оффтоп, скорее на тему "кто главнее - растр или вектор". Прошу прощенья
На тему "что такое вектор" можно только сказать, что из него сделать растр легче, а вот наоборот - сложнее. Отсюда привычка хранить вектора тщательно, а растры - не очень. Они "стареют" быстрее.
Нам как-то ДВГУ прислал ступенчатую послерастровую карту растительности... Наши завыли, затопали ногами, и мы с месяц ломали голову, "как сгладить ступенчатые полигоны"

Есть впрочем, попытки сделать и картографию растровой - именно рисовать кистью, отмывка рельефа та же, фотокарты, и прочее. Но сколько их ни воздымали, пока они успеха не имеют - даже после гугла народ требует карты с номерами домов и надписями. нет привычки, словом. Всем нужно точно, конкретно, "скоко вешать граммов", никто не хочет включать воображение.
Кстати, ориентироваться по плановому снимку непросто, нужен опыт. Например, вы едете зимой, а снимок-то летний!!! По векторной карте гораздо проще. А вот по панораме куда привычней любому... Раньше такие карты бывали даже у ГУГК, куда-то пропали теперь.
Впрочем, это уже явный оффтоп, скорее на тему "кто главнее - растр или вектор". Прошу прощенья

-
- Участник
- Сообщения: 74
- Зарегистрирован: 07 фев 2006, 22:54
- Репутация: 0
Растр или вектор?
Вопрос автора - зачем вектор, если он все равно потенциальный растр - отдает велосипедоизобретальством. Ктож щас программмирует так вот с нуля и до конца??? На дворе 21-й век, есть растеризация на уровне систем, драйверов, зачем в нее лезть-то? Или автор планирует все это заменить личным творчеством???
Мало того, вектор шествует победно там, где растр брал верх простотой. Если лет пять назад мы карты тащили печатать в "Лир" тифами, или на своем ящике, то щас эта проблема отпала благодаря технологиям Adobe PS. Карту длиной метра три по другому донести до сервиса нынче ии не получиться, а растеризатор там уж найдется всегда - он "встроен" и в плоттеры, и в ОС систем 7 во все места
Словом, чтож, отменять родителей, если дети "все равно будут"?
Мало того, вектор шествует победно там, где растр брал верх простотой. Если лет пять назад мы карты тащили печатать в "Лир" тифами, или на своем ящике, то щас эта проблема отпала благодаря технологиям Adobe PS. Карту длиной метра три по другому донести до сервиса нынче ии не получиться, а растеризатор там уж найдется всегда - он "встроен" и в плоттеры, и в ОС систем 7 во все места
Словом, чтож, отменять родителей, если дети "все равно будут"?
-
- Завсегдатай
- Сообщения: 386
- Зарегистрирован: 07 фев 2004, 14:31
- Репутация: 7
- Откуда: Лозанна
- Контактная информация:
послушайте, товарищи - мы ведь обсуждаем концепцию, а не то кто и где победно шествует.
вопроса "зачем же нужен вектор?" я, кстати говоря, в тексте первого сообщения не увидела
а так - давайте все-таки жить дружно! никто мне кажется не утверждал, что вектор - бяка и надо срочно переходить на растровые гис.
Еще раз - все определяется задачей. И обсуждание преимуществ растрового или векторного подходов - мое твердое убеждение - должно проходить только в таком контексте.
вот интересные ссылки на западные дебаты по этому поводу (правда там это часто называют objects (вектор) - fields (растр))
http://www.ucgis.org/priorities/research/ - см. white papers
http://www.ncgia.ucsb.edu/education/curricula/giscc/
----
а все-таки как приятно обсудить более концептуальные вещи, вместо обычного "нажмите кнопку...". Хоть может это и оффтоп.
вопроса "зачем же нужен вектор?" я, кстати говоря, в тексте первого сообщения не увидела

а так - давайте все-таки жить дружно! никто мне кажется не утверждал, что вектор - бяка и надо срочно переходить на растровые гис.
Еще раз - все определяется задачей. И обсуждание преимуществ растрового или векторного подходов - мое твердое убеждение - должно проходить только в таком контексте.
вот интересные ссылки на западные дебаты по этому поводу (правда там это часто называют objects (вектор) - fields (растр))
http://www.ucgis.org/priorities/research/ - см. white papers
http://www.ncgia.ucsb.edu/education/curricula/giscc/
----
а все-таки как приятно обсудить более концептуальные вещи, вместо обычного "нажмите кнопку...". Хоть может это и оффтоп.
-
- Гуру
- Сообщения: 852
- Зарегистрирован: 15 сен 2005, 13:19
- Репутация: 6
- Откуда: москва
- Контактная информация:
Задачи геоинфотехнологий как раз и не получается. В смысле, одной единой или хотя бы преобладающей задачи. Кто-то считает основной задачу личного программирования некоего инструмента, кто-то - задачу представления материала картографическому пользователю, кто-то - задачу подготовки к печати и сам вывод. В ваших речах, Анна, как основная прозвучала задача обработки первичного материала... Есть еще архивные задачи и т.п. и т.д. Если условиться, какую из задач ГИС обсуждать, тогда можно и продолжить.
Вопрос зачинателя темы "что такое растр, если он все равно вектор" вряд ли стоит принимать всерьез - как он сам признался, это лишь способ изложения. А вот "кто главнее" именно прозвучало, хоть и за кадром. Впрочем, это тезис известный, и ваши ссылки это (как всегда) хорошо иллюстрируют, спасибо.
Ваш форум нравится многим именно тем, что тут получается обсуждать вопрос "в общем", без привязки к конкретным средствам. На других это не выходит, да и не должно, объективно. Хотя порою хочется...
Вопрос зачинателя темы "что такое растр, если он все равно вектор" вряд ли стоит принимать всерьез - как он сам признался, это лишь способ изложения. А вот "кто главнее" именно прозвучало, хоть и за кадром. Впрочем, это тезис известный, и ваши ссылки это (как всегда) хорошо иллюстрируют, спасибо.
Ваш форум нравится многим именно тем, что тут получается обсуждать вопрос "в общем", без привязки к конкретным средствам. На других это не выходит, да и не должно, объективно. Хотя порою хочется...
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Как это, как это не должно? По моему скромному мнению - обязано просто, если форум посвящен ГИС, а не просто ПО.Ваш форум нравится многим именно тем, что тут получается обсуждать вопрос "в общем", без привязки к конкретным средствам. На других это не выходит, да и не должно, объективно. Хотя порою хочется...
Единственно, что на самом деле важно, так то, что такие обсуждения должны неким образом финализироваться в статьях, иначе будут ходить по кругу бесконечно. Как впрочем и вопросы ПО.
пристегивайтесь, турбулентность прямо по курсу
- taimyr
- IT-моторист
- Сообщения: 460
- Зарегистрирован: 14 окт 2003, 12:36
- Репутация: 17
- Откуда: Москва
- Контактная информация:
Господа, а вам не кажется, что вы забыли элементарную геометрию ? Цитата " мне нужно будет все равно "растеризовывать" представление линии до точек ее составляющих и задавать координаты х и у для каждой такой точки? т.е. векторная линия все равно будет "растром" в каком-то смысле слова?" наводит на такие мысли. Геометрическая (и картографическая) линия не имеет толщины, как и точка, а любой растровый объект, изображающий линию или точку - будет иметь толщину и площадь, в соответствии с разрешением растра. Отсюда следует, что растровым "полноценным" объектом будет только полигон.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость