Форум: "Основная";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];
ВнизПостроение пространства из точек. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c