Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как нарисовать 3D график?  (Прочитано 12133 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« : 30-03-2009 03:16 » 

Задание: нарисовать график любой функции в декартовых координатах (x, y, z).
Примерно знаю как нарисовать сложную фигуру с помощью OpenGL, но не могу придумать, как их задать  А черт его знает... . Пусть, например, есть функция x^2 + y^2 + z^2 = R^2. Я-то знаю, что это шар, но, посоветуйте пожалуйста, как это графически нарисовать?  Здесь была моя ладья...
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 30-03-2009 03:41 » 

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

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
barracudo
Гость
« Ответ #2 : 30-03-2009 07:37 » 

В OpenGL есть функция отрисовки шара. У этой функции есть параметры, по которым этот шар вырисовывается. Выставь в эти параметры результат решения твоей функции.
Хотя для 3D графика лучше использовать другие фигуры, более привычные для восприятия.
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 30-03-2009 07:41 » 

Inkognito, а задание включает использование OpenGL, или он тут просто к слову пришёлся?
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #4 : 30-03-2009 19:03 » 

Inkognito, а задание включает использование OpenGL, или он тут просто к слову пришёлся?
Это обязательное условие.

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

В OpenGL есть функция отрисовки шара.
Не прокатит в моем случае: я заранее не знаю, что за график будет. Можно как вариант проверять формулы на соответствие об’екту в OpenGL, но не думаю, что это самый лучший вариант решения задачи.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 30-03-2009 19:46 » 

Inkognito, по моему, мое сообщение ты прочел невнимательно. И подозреваю, что геометрию плохо помнишь.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 30-03-2009 21:18 » 

Не прокатит в моем случае: я заранее не знаю, что за график будет. Можно как вариант проверять формулы на соответствие об’екту в OpenGL, но не думаю, что это самый лучший вариант решения задачи.
Тогда поддерживаю RXL: нужно брать функцию и строить что-нибудь типа меридианов или топографических линий - суть в том, чтобы разбить поверхность на полигоны хоть по какому-нибудь признаку.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 31-03-2009 06:04 » 

Можно не только меридианно-параллельное разбиение сделать, а еще на правильные многогранники (должна существовать метода) - так будет меньше треугольников и лучше гладкость в районе экватора.
« Последнее редактирование: 31-03-2009 06:07 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines