Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Построение пространства из точек. [D7, WinXP]


Dimon Dimonich ©   (2008-12-02 23:58:00) 

Здрасте, товарищи. Пишу диплом, нужен Ваш совет. Есть совокупность точек(допустим 100). Каждая имеет свои координаты по Х У Z. Мне надо построить это пространство в трехмерном виде с возможностью масштабирования. OpenGL совсем не хочется, а в голову мысли кроме изощренной геометрии с пересчетом координат при изменении масштабирования, ничего не лезет. Насоветуйте дельных мыслей) Tchart не предлагать. Заранее спасибо.


@!!ex   (2008-12-03 14:15:00) [1]

> [10] Dimon Dimonich   (03.12.08 11:40)

Вот так выглядит у меня:
http://img229.imageshack.us/my.php?image=software3deu4.jpg

К сожалению сделать корректный High Quality Render руки так и не дошли. Что-то там не так с растеризацией треугольника. Заказчику вполне было достаточно низкокачественного рендера, поэтому так и осталось.
Теней нет, но можно сделать довольно просто.

То, что тебе нужно, находится в uCanvas3D.pas, там класс, реализующий отрисовку поверхности. DrawSurface по массиву точек строит поверхность в high Quality, как виндо из скрина - некорретктно строит, поэтому пользуйся методами Triangle,Quad или DrawPoly, они выглядят похуже, зато корректно работают.

Здесь лежат сорсы и пример отрисовки bmpшной карты высот.
http://www.mediafire.com/?zmynjyvodv1

Я помочь ничем больше не смогу, ибо до пятницы у меня нет инета.
Удачи.


Dimon Dimonich   (2008-12-03 12:47:00) [2]

Спасибо за советы. Буду пробовать.


oxffff   (2008-12-03 12:27:00) [3]

Ну и о чем тебе написали в Сергей М. ©   (03.12.08 11:52) [11]

D3DXMATRIX *D3DXMatrixLookAtLH(          D3DXMATRIX *pOut,
   CONST D3DXVECTOR3 *pEye,
   CONST D3DXVECTOR3 *pAt,
   CONST D3DXVECTOR3 *pUp
);


oxffff   (2008-12-03 12:21:00) [4]

Импортируй из d3dx9dll функцию D3DXMatrixPerspectiveFovLH


oxffff   (2008-12-03 12:19:00) [5]

Зря пугаешься Projection Matrix.
Как считать.
http://msdn.microsoft.com/en-us/library/bb205350(VS.85).aspx

что это
http://www.intuit.ru/department/graphics/direct3dhlsl/6/4.html

Далее умножаешь свой вектор на эту матрицу это и есть проекция на плоскость.


Сергей М.   (2008-12-03 12:16:00) [6]


> Тчарт не хочет с тремя координатами работать


Пардон, TChartFx (см. закладка ActiveX)


Dimon Dimonich   (2008-12-03 12:10:00) [7]

Сергей М.
Нижние два графика-да, проекция... Но Тчарт не хочет с тремя координатами работать, а мне нужен вид такой, как верхний график( как трехмерный рельеф местности). Или я что-то не знаю, про Тчарт? о_0 =)


Сергей М.   (2008-12-03 12:03:00) [8]


> Dimon Dimonich   (03.12.08 11:58) [12]


На рисунке явно изометрическая проекция, это даже упорощает дело, и TChart с этим успешно справится.. Не знаю почему ты от него отказываешься ..


Dimon Dimonich   (2008-12-03 11:58:00) [9]

Сергей М.
Есть мысли, как строить график, как на рисунке по ссылке?

> Этого не достаточно.Нужен еще как минимум вектор взгляда,
>  без него ни одна 3Д-сцена немыслима

Да, я уже понял, что не достаточно.


Сергей М.   (2008-12-03 11:52:00) [10]


> Задал .. точку начала координат


Этого не достаточно.
Нужен еще как минимум вектор взгляда, без него ни одна 3Д-сцена немыслима


Dimon Dimonich   (2008-12-03 11:40:00) [11]

Сергей М
Мне ни освещение, ни сглаживание не надо. Мне нужно чтобы я
1)Задал для компонента точку начала координат
2)построил 100 точек по 3(трем) координатам и получил некое облако, состоящее из 100 точек разного цвета))
Это в идеале. Я представляю, как это можно сделать математически с помощью канвы, но решил спросить, может быть есть менее изощренные способы.
http://plandin.narod.ru/allprog.files/image086.jpg- то ч то в идеале хотелось бы видеть на экране


Сергей М.   (2008-12-03 11:33:00) [12]


> Dimon Dimonich


Так тебя интересует проволочная модель что ли ?
Или тебе все в одном компоненте подавай - и текстурирование, и освещение, и сглаживание, и удаление невидимых граней ?


Dimon Dimonich   (2008-12-03 11:30:00) [13]

Да, и прошелся поиском, не нашел ничего про DrawPoligon. Стыдно, за дельфи последнй раз садился лет 5 назад, по образованию не программер, а диплом вот дали программу написать. Не серчайте за глупые вопросы)


Dimon Dimonich   (2008-12-03 11:26:00) [14]

Да, конечно же компонент, прошу прощения за мой прогаммерский)
@!!ex, если не сложно, выложите плз еще раз этот класс. Мне кажется это то, что нужно.
Спасибо за ответы.


@!!ex   (2008-12-03 11:13:00) [15]

> [5] Сергей М. ©   (03.12.08 11:08)

элемент == компонент?
:))


Сергей М.   (2008-12-03 11:08:00) [16]


> думал, мб есть элемент


Что ты называешь "элементом" ?
OpenGL и TChart ведь тоже своего рода "элементы" ..


@!!ex   (2008-12-03 11:07:00) [17]

Только перспективу надо саму расчитать. Это одна строчка кода. нету ничего страшного. Я помойму тут выкладывал класс, который по массиву точек строит 3Д графики через Canvas.


@!!ex   (2008-12-03 11:06:00) [18]

DrawPolygon


Dimon Dimonich   (2008-12-03 11:04:00) [19]

Конечно были. Вот под эти я и имею ввиду изощренную геометрию. Я думал, мб есть элемент подобный для построения 3-х мерных объектов по точкам


KilkennyCat   (2008-12-03 00:12:00) [20]

Уроки черчения в школе были?


Наверх

Титульная страница Поиск, карта сайта Написать письмо