IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Помогите построить график в C++ (http://www.imho.ws/showthread.php?t=139296)

Umnik 17.04.2009 20:29

Помогите построить график в C++
 
Нужно построить "Декартов лист" х=(3*а*т)/(1+т^3);
у=(3*а*т^2)/(1+т^3); Заранее благодарю!

a_ber 19.04.2009 18:34

Где построить? В какой форме Вы хотите иметь его?

До решения об изобразительных средствах, все остальное просто.

Задаете t в нужном интервале с нужным шагом и считаете: x(t) и y(t). Получаете 3 "массива" t, x(t) и y(t). Рисуете соответственно последовательность точек y(t) как функцию x(t). То что шкала по x(t) неравномерная никого не волнует.

В Матлабе это выглядит (Матлаб тут в роле псевдо-кода):
Код:

fi=-pi:.01:pi;
t = tan(fi);
x = 3*a*t./(1+t.^3);
y = (3*a*t.^2)./(1+t.^3);
plot(x,y)

Доп. переменная введена для аккуратности шкалы (по мотивам wikipedia)

Чем заменить plot(x,y)? Чем хотите - зависит от требований, хоть pstricks. :)
Какую структуру в C++? Опять-таки берите то чему вас учили, например, std::vector. Только оформите циклы в соответствии со стилем.

exnepT 20.04.2009 16:28

построить график функции в С++
 
Общая формулировка задания:
Написать программу на языке высокого уровня C/С++, позволяющую получить на экране график заданной функции. Координатную плоскость отображать в зависимости от типа функции (декартовые или полярные координаты). С графиком функции предусмотреть действия, указанные в индивидуальном варианте.
После запуска программы на экране отображается словесная постановка задачи.
Далее должны быть запрошены параметры графика, вводимые пользователем:
1)коэффициенты функции;
2)диапазон вывода по оси X и по оси Y для функций в декартовой системе координат;
3) максимальный радиус-вектор для функций в полярной системе координат.
После ввода всех необходимых параметров на экране должно быть построено соответствующее координатное пространство с нанесенным на нем графиком. На координатной сетке должны располагаться подписи в виде значений в местах пересечения сетки с осями координат. По клавише ‘G’ предусмотреть отображение/скрытие координатной сетки (Примечание: для полярной системы координат координатная сетка является не прямоугольной, а радиальной).
В верхней части графика должно быть представлено название и математическая формула функции, график которой реализуется в курсовом проекте (например, «Кривая второго порядка y(x)=2*x^2-5*x+3»).
Под графиком должен располагаться текст с описанием назначений быстрых клавиш, используемых в программе (например, «Q – ВЫХОД»).
Также под графиком должны выводиться на экран максимальные и минимальные значения функции (область допустимых значений), нули функции (это такие значения аргументов, при которых значение функции равно 0, для полярных координат это такие значения угла φ, при которых радиус-вектор равен нулю, или очень близок к нему с задаваемой точностью x).
Разработать программу, перенеся объявление переменных и вызов соответствующих функций в отдельный модуль, объединить модули в проекте.

добавлено через 1 минуту
Вот сама функция:
Трактриса
  x=A·(cos(t)+ln(tg(t/2))
  y=A·sin(t)

1. Предусмотреть масштабирование графика в целом (при нажатии клавиш ‘+’ и ‘‑’) с шагом в 10%.
2. Предусмотреть вращение графика по/против часовой стрелки с помощью клавиш ‘Q’ и ‘W’ соответственно. Шаг поворота 5°.
3. Предусмотреть сдвиг графика вверх/вниз/влево/вправо с помощью клавиш ‘A’, ‘Z’, ‘O’ и ‘P’ соответственно. Шаг сдвига – 15 пикселей.

добавлено через 1 минуту
Люди добрые помогите кто чем сможет!!!:молись::молись::молись:


Часовой пояс GMT +4, время: 11:53.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.