Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.13;
Скачать: CL | DM;

Вниз

Построение пространства из точек.   Найти похожие ветки 

 
Dimon Dimonich   (2008-12-02 23:58) [0]

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


 
KilkennyCat ©   (2008-12-03 00:12) [1]

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


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

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


 
@!!ex ©   (2008-12-03 11:06) [3]

DrawPolygon


 
@!!ex ©   (2008-12-03 11:07) [4]

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


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


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


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


 
@!!ex ©   (2008-12-03 11:13) [6]

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

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


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

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


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

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


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


> Dimon Dimonich


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


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

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


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


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


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


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

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

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

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


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


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


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


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

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


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


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


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


 
oxffff ©   (2008-12-03 12:19) [16]

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

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

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


 
oxffff ©   (2008-12-03 12:21) [17]

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


 
oxffff ©   (2008-12-03 12:27) [18]

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

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


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

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


 
@!!ex ©   (2008-12-03 14:15) [20]

> [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

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



Страницы: 1 вся ветка

Текущий архив: 2009.12.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
15-1255863244
POOP
2009-10-18 14:54
2009.12.13
Если в bat файле


11-1209490183
=BuckLr=
2008-04-29 21:29
2009.12.13
Отрисовка ListView вручную


2-1256109863
RWolf
2009-10-21 11:24
2009.12.13
AnsiExtractQuotedStr(PChar(str), ...)


2-1256125568
Neket
2009-10-21 15:46
2009.12.13
Rename Section


2-1256117947
xyz
2009-10-21 13:39
2009.12.13
перебор выделенных строк в DBGridEh