Содержание
- 2. Технология создания графического примитива Откройте проект из урока №2 (рисовали оси координат); Придумайте графический примитив из
- 3. Изобразите стилизованное дерево на обычном листе бумаги. Лучше, если это будет листок в клетку. Определитесь с
- 4. Разбейте рисунок на выпуклые полигоны. В моем случае получилось три четырехугольника и один треугольник; Можно приступать
- 5. //крона glColor3ub(0,200,0);//цвет крон glBegin(GL_QUADS); ы glVertex2f(-2,1); glVertex2f(2,1); glVertex2f(1,2); glVertex2f(-1,2); glVertex2f(-2,2); glVertex2f(2,2); glVertex2f(1,3); glVertex2f(-1,3); glEnd(); glBegin(GL_TRIANGLES); glVertex2f(-2,3);
- 6. void Draw() { tree1(); osi(10); } Вызываем функцию tree1 в Draw;
- 7. Рисование примитивов с помощью функции tree1. Изменение примитива с помощью трансформаций Нарисовать дерево в точке (4,0,0);
- 8. void Draw() { tree1(); //дерево в центре начала координат glTranslated(4, 0, 0); //перенос на вектор(4,0,0) tree1();
- 9. Должен получиться вот такой результат:
- 10. Из OpenGL Red Book У полигона две стороны или грани—лицевая и обратная, и он может быть
- 11. Графические примитивы: окружность, круг, эллипс, кольцо Oкружность: void DrawCircle(double x, double y, double radius, double r,
- 12. DrawCircle(0,0,7,1,1,0,3);
- 13. Круг: void DrawRound(double x, double y, double radius, double r, double g, double b) { //
- 14. DrawRound(8,8,2,1,0,1);
- 15. Эллипс: void DrawEllipse(double r1,double r2, double r, double g, double b, float size=1.0f) { // передаются
- 16. DrawEllipse(7,4,0,1,1,3);
- 17. Линии также можно делать более гладкими. Для получения эффекта сглаживания необходимо его разрешить: void DrawEllipse(double r1,double
- 18. В некоторых случаях этого недостаточно, поэтому в функцию RunOpenGL добавим следующий код: glEnable( GL_BLEND );//разрешаем смешивание
- 19. Линия эллипса стала более гладкой.
- 20. Эллипс с заливкой: void DrawEllipseFill(double r1,double r2, double r, double g, double b) { // передаются
- 21. DrawEllipseFill(4,7,1,1,0);
- 22. или void DrawEllipseFillGrad(double a,double b, double r1, double g1, double b1, double r2, double g2, double
- 23. DrawEllipseFillGrad(8,6,1,1,0,1,0,0);
- 24. Кольцо: void DrawRing(double x, double y, double r1, double r2, double r, double g, double b)
- 25. DrawRing(7,-7,3,1,1,1,1);
- 26. Создание примитивов при помощи трансформаций Функция рисования эллипса выводит примитив параллельно осям X и Y. Чтобы
- 27. void DrawOrbita(double r1, double r2, double r, double g, double b, byte n) { //r1-большая полуось,
- 28. Используя, выше написанные функции рисования графических примитивов, можно создавать более сложные рисунки.
- 30. Скачать презентацию