что такое вектор

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Guest

что такое вектор

Сообщение Guest » 12 ноя 2005, 23:40

добрый день всем участникам форума.
Вопрос может показаться несколько странным, но все же - что такое вектор? например, если я хочу создать программно новый класс, который рисует линию (вектор) между двумя точками - получается, что мне нужно будет все равно "растеризовывать" представление линии до точек ее составляющих и задавать координаты х и у для каждой такой точки? т.е. векторная линия все равно будет "растром" в каком-то смысле слова?
или нет?
хотелось бы услышать ваши мнения по данному вопросу?
(только не надо комментариев, что в большинстве языков такой класс уже создан и париться не стоит). Этот вопрос - скорее теоретический, просто на таком примере проще объяснить.

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Сообщение Анна » 16 ноя 2005, 04:05

хм, неужели ни у кого никаких мнений-соображений нет по этому поводу? :)

Гость

Сообщение Гость » 16 ноя 2005, 20:01

Фактически "ДА". Отображение на экране (бумаге) всегда "растровое", другое дело представление примитивов для хранения, какой-либо обработки, расчета масштабирования, подготовки к выводу на экран в конце концов (не отображение, а именно подготовка) и т.п.

yumakaev
Активный участник
Сообщения: 143
Зарегистрирован: 10 мар 2004, 08:07
Репутация: 10
Откуда: Redlands
Контактная информация:

Сообщение yumakaev » 18 ноя 2005, 01:09

Нет уж, давайте котлеты отдельно и мухи отдельно.

Если мы говорим о конечном изображении, то да, в итоге оно окажется растровым, "пикселированным", хоть на мониторе (по природе монитора), хоть на распечатке (по природе принтера).

Но если мы говорим об объекте, из которого получается производный продукт (изображение), то в полную силу вступает понятие именно вектора.

Основой всех примитивов сложнее точки (линий и полигонов любой конфигурации) является отрезок, т.е. участок прямой между двумя точками. Каждая из этих двух точек имеет X и Y, и комбинация этих двух иксов и игреков собственно и задаёт ВЕКТОР. И в итоге всё строится из одних векторов, без каких-либо растров.

Иногда и отдельно взятую точку интерпретируют как объект, заданный вектором, отложенным из начала координат (0,0) при помощи значений X и Y, но на мой личный взгляд это не всегда оправданное усложнение понятийного аппарата.

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

Гость

Сообщение Гость » 18 ноя 2005, 14:33

Именно так. Это я и имел ввиду: "...другое дело представление примитивов для хранения, какой-либо обработки, расчета масштабирования, подготовки к выводу на экран в конце концов (не отображение, а именно подготовка) и т.п."

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Сообщение Анна » 03 фев 2006, 14:01

к вопросу о том, что все строится из одних векторов - а как строится сам примитив вектора? вот в чем интерес-то. для примера вот такая ссылка:
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}
по сути что представляет этот алгоритм? рисование линии (вектора) "по ступенькам", пиксел за пикселем.

geologic
Гуру
Сообщения: 852
Зарегистрирован: 15 сен 2005, 13:19
Репутация: 6
Откуда: москва
Контактная информация:

Интересный вопрос - помню, в былые годы

Сообщение geologic » 06 фев 2006, 16:10

рубились на эту тему и даже статьи сочиняли - что первично, вектор или растр? Щас как-то это все угасло, и вряд ли стоит поднимать с нуля, как и главный философский вопрос, асолютного решения это не имеет. А лучше вспомнить, как в реальности обстоит:

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

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

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

А как там в конкретной процедурке при выводе закручено, разве так уж это важно? Много ли карт сделано в фотошопе? Хотя именно сейчас я как раз там в нем сижу и делаю, очень изящно, мне нравится, но... это не эффективно.

Вот пример с гуглом, это уже что-то...

yumakaev
Активный участник
Сообщения: 143
Зарегистрирован: 10 мар 2004, 08:07
Репутация: 10
Откуда: Redlands
Контактная информация:

Сообщение yumakaev » 06 фев 2006, 22:02

Согласен с geologic.
Анна писал(а):а как строится сам примитив вектора?
Пардон, в приведённых алгоритмах мы отвечаем на вопрос как строится, или как отображается векторный примитив? :wink:

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Сообщение Анна » 06 фев 2006, 22:56

в приведённых алгоритмах мы отвечаем на вопрос как строится, или как отображается векторный примитив?
честно? не знаю. на мой взгляд именно строится, но готова выслушать другие предложения;)
С утверждением, что эта тема интересна именно в "угоду сиюминутности" - полностью согласна и изобретать велосипед не собираюсь:). просто любопытно. и пока еще вроде не оффтоп.
Растровые подходы (вроде работы с кистью) встречаются нечасто,
нуу, вот тут готова поспорить - анализ данных - именно растровых - все-таки все мы использовали, используем и будем использовать. И сравнивать его с работой кистью, по-моему, несправедливо. Функционал здесь не маленький - для примера можно вспомнить тот же модуль grid для Arcinfo (с более чем 200ми команд), или такое полностью растровое ПО как Idrisi - кстати говоря, оооочень широко используемое в научном сообществе для решения большого круга аналитических задач и моделирования. Про космические снимки и все что с ними связано даже не начинаю говорить...
И опять-таки - посмотрим на тенденции в мире геоПО - все улучшающаяся поддержка работы с растрами и возможность создания базы растровых геоданных от ESRI, выпуск Oracle Spatial GeoRaster в 1-2 релизах Oracle10g, 9ый выпуск Erdas Imagine ну и т.д.
Так что сдавать концепцию растровых данных в архив мне кажется преждевременно и необосновано.
Но, чтобы не выглядеть предвзято, замечу - именно задача определяет то, какое решение выбрать и какой формат использовать. И также как мы с вами не стали бы носить шубу летом,а шорты зимой, не стоит отдавать должное тому или другому формату, просто потому что "шорты" легче надеть, а "шуба" выглядит красивше.
Изображение
Последний раз редактировалось Анна 11 фев 2006, 03:34, всего редактировалось 1 раз.

geologic
Гуру
Сообщения: 852
Зарегистрирован: 15 сен 2005, 13:19
Репутация: 6
Откуда: москва
Контактная информация:

Сообщение geologic » 07 фев 2006, 17:22

нет-нет, Анна, я как раз писал держа "в уме" этот громадный кусок. В котором ваш сайт безусловно один из лидеров по накоплению опыта. Однако тут ситуация такова, что первичный материал имеет такую растровую форму, и вы вынуждены, следовательно, так его и обрабатывать. Это обработка, анализ, но не картография в классическом понимании, которая вся чертежная. После этой обработки все равно вы склонны будете сделать ВЕКТОРНЫЙ результат, чтобы его хранить и подавать пользователю в виде линий, границ, по ряду причин, из которых главный - привычка пользователя. Чертежу интуитивно больше доверия, чем рисунку.

Нам как-то ДВГУ прислал ступенчатую послерастровую карту растительности... Наши завыли, затопали ногами, и мы с месяц ломали голову, "как сгладить ступенчатые полигоны" :) Слава богу, авторы согласились сделать это сами заново.

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

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

Впрочем, это уже явный оффтоп, скорее на тему "кто главнее - растр или вектор". Прошу прощенья :) На тему "что такое вектор" можно только сказать, что из него сделать растр легче, а вот наоборот - сложнее. Отсюда привычка хранить вектора тщательно, а растры - не очень. Они "стареют" быстрее.

lalex
Участник
Сообщения: 74
Зарегистрирован: 07 фев 2006, 22:54
Репутация: 0

Растр или вектор?

Сообщение lalex » 07 фев 2006, 23:02

Вопрос автора - зачем вектор, если он все равно потенциальный растр - отдает велосипедоизобретальством. Ктож щас программмирует так вот с нуля и до конца??? На дворе 21-й век, есть растеризация на уровне систем, драйверов, зачем в нее лезть-то? Или автор планирует все это заменить личным творчеством???

Мало того, вектор шествует победно там, где растр брал верх простотой. Если лет пять назад мы карты тащили печатать в "Лир" тифами, или на своем ящике, то щас эта проблема отпала благодаря технологиям Adobe PS. Карту длиной метра три по другому донести до сервиса нынче ии не получиться, а растеризатор там уж найдется всегда - он "встроен" и в плоттеры, и в ОС систем 7 во все места

Словом, чтож, отменять родителей, если дети "все равно будут"?

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Сообщение Анна » 08 фев 2006, 00:36

послушайте, товарищи - мы ведь обсуждаем концепцию, а не то кто и где победно шествует.
вопроса "зачем же нужен вектор?" я, кстати говоря, в тексте первого сообщения не увидела :)
а так - давайте все-таки жить дружно! никто мне кажется не утверждал, что вектор - бяка и надо срочно переходить на растровые гис.
Еще раз - все определяется задачей. И обсуждание преимуществ растрового или векторного подходов - мое твердое убеждение - должно проходить только в таком контексте.

вот интересные ссылки на западные дебаты по этому поводу (правда там это часто называют objects (вектор) - fields (растр))
http://www.ucgis.org/priorities/research/ - см. white papers
http://www.ncgia.ucsb.edu/education/curricula/giscc/

----
а все-таки как приятно обсудить более концептуальные вещи, вместо обычного "нажмите кнопку...". Хоть может это и оффтоп.

geologic
Гуру
Сообщения: 852
Зарегистрирован: 15 сен 2005, 13:19
Репутация: 6
Откуда: москва
Контактная информация:

Сообщение geologic » 08 фев 2006, 16:37

Задачи геоинфотехнологий как раз и не получается. В смысле, одной единой или хотя бы преобладающей задачи. Кто-то считает основной задачу личного программирования некоего инструмента, кто-то - задачу представления материала картографическому пользователю, кто-то - задачу подготовки к печати и сам вывод. В ваших речах, Анна, как основная прозвучала задача обработки первичного материала... Есть еще архивные задачи и т.п. и т.д. Если условиться, какую из задач ГИС обсуждать, тогда можно и продолжить.

Вопрос зачинателя темы "что такое растр, если он все равно вектор" вряд ли стоит принимать всерьез - как он сам признался, это лишь способ изложения. А вот "кто главнее" именно прозвучало, хоть и за кадром. Впрочем, это тезис известный, и ваши ссылки это (как всегда) хорошо иллюстрируют, спасибо.

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

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Сообщение Максим Дубинин » 08 фев 2006, 17:41

Ваш форум нравится многим именно тем, что тут получается обсуждать вопрос "в общем", без привязки к конкретным средствам. На других это не выходит, да и не должно, объективно. Хотя порою хочется...
Как это, как это не должно? По моему скромному мнению - обязано просто, если форум посвящен ГИС, а не просто ПО.

Единственно, что на самом деле важно, так то, что такие обсуждения должны неким образом финализироваться в статьях, иначе будут ходить по кругу бесконечно. Как впрочем и вопросы ПО.
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
taimyr
IT-моторист
Сообщения: 460
Зарегистрирован: 14 окт 2003, 12:36
Репутация: 17
Откуда: Москва
Контактная информация:

Сообщение taimyr » 08 фев 2006, 20:35

Господа, а вам не кажется, что вы забыли элементарную геометрию ? Цитата " мне нужно будет все равно "растеризовывать" представление линии до точек ее составляющих и задавать координаты х и у для каждой такой точки? т.е. векторная линия все равно будет "растром" в каком-то смысле слова?" наводит на такие мысли. Геометрическая (и картографическая) линия не имеет толщины, как и точка, а любой растровый объект, изображающий линию или точку - будет иметь толщину и площадь, в соответствии с разрешением растра. Отсюда следует, что растровым "полноценным" объектом будет только полигон.

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость