Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графики функций 
:(
    Опции темы
Pro100MoNEy
Дата 7.11.2010, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.11.2010

Репутация: нет
Всего: нет



Мне нужно сделать курсовую, в ней нужно выводить графики(а также поверхности и фигуры) функций введя уравнение, если это фигура или поверхность то нужно их крутить , делать срез и тд.

У меня есть такие вопросы
1)Нужно из уравнения считать точки, и чтобы это сделать надо уравнение преобразовывать чтобы считать множество точек, не хочеться делать ввод уравнения, так что вводишь коэфициэнт и степень для каждого отдельно, хочеться вводить уравнение строкой, как это реализовать, и как считать точки
2) Если фигура обьемная нужен свет, иначе этого неувидеть, как залить градиентом фигуру построеную из массива точек, насколько я понимаю нужно строить фигуру из полигонов, как их получить из множества точек?

И препод сказал пользоваться только средствами win32api, никаких openGL, мфс и пр.=(

PM MAIL   Вверх
bsa
Дата 7.11.2010, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



1. Довольно нетривиальная задача для новичка. Но решить можно. Легче это сделать на С++ (с использованием классов и полиморфизма), но можно и на С. Для этого нужно написать парсер строки и набор звеньев: сложение, вычитание, умножение, деление, возведение в степень... парсер должен выстроить на основе введенной формулы дерево звеньев, у которого на самом верху (т.е. листьями) будут аргументы функции.
2. свет не нужен. ты про векторную графику слышал? В свое время даже игры были исключительно в векторе и без заливки (Elite на ZX Spectrum). Строишь линиями z(x) при y=const, затем z(y) при x=const. В итоге у тебя получается фигура из сетки.
PM   Вверх
Pro100MoNEy
Дата 7.11.2010, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.11.2010

Репутация: нет
Всего: нет



Если листья это аргументы тогда что являеться корнем?
Корень это ответ всего выражения? А как быть если неизвестное на 3 уровне дерева а не корень?
(Ведь если я правильно понимаю нужно 2 переменным дать значение и вычислить третью, но тогда нужно преобразовать уравнение, т.е перенести неизвестные в одну известные на другую сторону а если выражение вида (z^2+y)^1/2+x-y=0 то довольно трудно выразить y)

Про векторную графику спасибо, а грани невидимые при таком построении будут видны так?

А разве полигон не геометрический примитив? и если строить сеткой всеравно нужно залить градиентом чтобы был эффект обьемности, иначе сфера станет окружностью.
Или я чтото непонял?


Это сообщение отредактировал(а) Pro100MoNEy - 7.11.2010, 12:09
PM MAIL   Вверх
bsa
Дата 8.11.2010, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(Pro100MoNEy @  7.11.2010,  12:34 Найти цитируемый пост)
Корень это ответ всего выражения?
конечно
Цитата(Pro100MoNEy @  7.11.2010,  12:34 Найти цитируемый пост)
(z^2+y)^1/2+x-y=0 то довольно трудно выразить y
Подобные вещи можно решить только через итерации, если не прибегать к тяжелой артиллерии, типа Mathematica... Но это ооочень долго. Так что делай "хардкодинг".
Цитата(Pro100MoNEy @  7.11.2010,  12:34 Найти цитируемый пост)
грани невидимые при таком построении будут видны так?
если не использовать алгоритмы их отсечения, то да.
Цитата(Pro100MoNEy @  7.11.2010,  12:34 Найти цитируемый пост)
А разве полигон не геометрический примитив? 
да. Обычно, используют треугольники...
Цитата(Pro100MoNEy @  7.11.2010,  12:34 Найти цитируемый пост)
если строить сеткой всеравно нужно залить градиентом чтобы был эффект обьемности, иначе сфера станет окружностью.
нет. не станет она окружностью. попробуй.

PM   Вверх
Pro100MoNEy
Дата 9.11.2010, 05:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.11.2010

Репутация: нет
Всего: нет



Цитата

 Так что делай "хардкодинг".


Не заморачиваться на таких уравнениях? сделать как получиться?)
PM MAIL   Вверх
bsa
Дата 9.11.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Pro100MoNEy, не "не заморачиваться на уравнениях", а не заморачиваться на их разборе в рантайме. Так как довольно сложно запрограммировать тот же шар. Как ты компу объяснишь, что при одних и тех же параметрах функция имеет несколько результатов?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.