![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Построение пространства из точек. [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]Уроки черчения в школе были?