glEndO;

CP.set (x. y): // update the CP // обновляем текущие координаты

glFlushO:

}

//«««««« set Window »»»»»»

void Canvas:: setWindow (float 1. float r. float b. float t)

{

glMatrixMode (GL_PR0JECTI0N): glLoadldentityO;

glu0rtho2D ((GLdouble)l. (GLdouble)r. (GLdouble)b. (GLdouble)t): window.set (1. r. b. t);

}

Глава 3. Дополнительные инструменты для рисования Практические упражнения

3.4.3. Конкретизируйте каждую из следующих функций-членов а) void setViewport(int 1. int г. int b. int t); б) IntRect getViewport(void): в) RealRect getwindow(void): r) void clearScreen(void): д) void setBackgroundColor(float г. float g. float b): е) void setColor(float r. float g. float b); ж) void lineTo(Point2 p); з) void moveTo(Point2 p): и) float getwindowAspectRatio(void):

3.4.4. Использование Canvas для имитации: числа Фибоначчи Увеличение числа популяции кроликов может быть смоделировано следующим уравнением: где ук - число кроликов в *-м поколении. Согласно этой модели, численность особей в данном поколении есть сумма численностей особей в двух предыдущих поколениях. Начальные популяции равны уй" 1 и у1 - 1. Последующие величины ук формируются путем подстановки более ранних значений, и полученная последовательность представляет собой хорошо известную последовательность Фибоначчи: 1,1,2,3,5,8,13,... График зависимости ук от k показывает природу этой формы роста. Используйте класс Canvas для написания программы, рисующей график этой последовательности длиной N. Задайте размер графика, соответствующий различным N. (Эта последовательность растет очень быстро, поэтому вместо этого вы можете захотеть нарисовать график зависимости логарифмаук от k.) Кроме того, нарисуйте график последовательности отношений рк - ук/ук_{ и проследите, как быстро рк сходится к золотому отношению.

3.4.5. Еще одна имитация: синусоидальные последовательности Синусоидальная последовательность генерируется с помощью следующего уравнения в конечных разностях:


⇐ Предыдущая| |Следующая ⇒