1 2 3 4 5 6 7 8 9 10 11 |
//C++ 3.1 graphics.h MS-DOS Рисование треугольника int main(){ int x1 = 100; int y1 = 200; int x2 = 300; int y2 = 500; int x3 = 90; int y3 = 600; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//C++ 3.2 graphics.h MS-DOS Рисование треугольника int main(){ int x1 = 100; int y1 = 200; int x2 = 300; int y2 = 500; int x3 = 90; int y3 = 600; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
//C++ 3.3 graphics.h MS-DOS Рисование треугольника #include <graphics.h> #include <iostream.h> #include <stdlib.h> int main(){ int grdriver = DETECT; //Инициализируем графический драйвер int gmode; initgraph(&grdriver, &gmode, ""); //Инициализируем графический режим int err = graphresult(); //graphresult() возвращает признак успешного запуска графического режима if (err != grOk){ //если произошла ошибка, запускаем этот блок cout << "ERROR" << grapherrormsg(err); //сообщаем об ошибке и выводим данные о ней на экран cout << "Press any key to halt"; cin.get(); exit(1); //выполняем экстренный выход из программы } else{ int x1 = 100; int y1 = 200; int x2 = 300; int y2 = 500; int x3 = 90; int y3 = 600; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); cin.get(); closegraph(); //Прекращаем работу графического режима } return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
//C++ 3.4.1 graphics.h MS-DOS Заливаем треугольник #include <graphics.h> #include <iostream.h> #include <stdlib.h> int main(){ int grdriver = DETECT; //Инициализируем графический драйвер int gmode; initgraph(&grdriver, &gmode, ""); //Инициализируем графический режим int err = graphresult(); //graphresult() возвращает признак успешного запуска графического режима if (err != grOk){ //если произошла ошибка, запускаем этот блок cout << "ERROR" << grapherrormsg(err); //сообщаем об ошибке и выводим данные о ней на экран cout << "Press any key to halt"; cin.get(); exit(1); //выполняем экстренный выход из программы } else{ int x1 = 100; int y1 = 200; int x2 = 300; int y2 = 500; int x3 = 90; int y3 = 600; int triangle[] = {x1, y1, x2, y2, x3, y3, x1, y1}; drawpoly(4, triangle); //Рисуем треугольник с помощью функции рисования многоугольников cin.get(); closegraph(); //Прекращаем работу графического режима } return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
//C++ 3.4 graphics.h MS-DOS Заливаем треугольник #include <graphics.h> #include <iostream.h> #include <stdlib.h> int main(){ int grdriver = DETECT; //Инициализируем графический драйвер int gmode; initgraph(&grdriver, &gmode, ""); //Инициализируем графический режим int err = graphresult(); //graphresult() возвращает признак успешного запуска графического режима if (err != grOk){ //если произошла ошибка, запускаем этот блок cout << "ERROR" << grapherrormsg(err); //сообщаем об ошибке и выводим данные о ней на экран cout << "Press any key to halt"; cin.get(); exit(1); //выполняем экстренный выход из программы } else{ int x1 = 100; int y1 = 200; int x2 = 300; int y2 = 500; int x3 = 90; int y3 = 600; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); floodfill(x1+50, y1+200, WHITE); //Я знаю, что [x1+1, y1+1] сейчас внутри треугольника, потому так пишу cin.get(); closegraph(); //Прекращаем работу графического режима } return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
//C++ 3.5 graphics.h MS-DOS Рисование залитого треугольника #include <graphics.h> #include <iostream.h> #include <stdlib.h> int main(){ int grdriver = DETECT; //Инициализируем графический драйвер int gmode; initgraph(&grdriver, &gmode, ""); //Инициализируем графический режим int err = graphresult(); //graphresult() возвращает признак успешного запуска графического режима if (err != grOk){ //если произошла ошибка, запускаем этот блок cout << "ERROR" << grapherrormsg(err); //сообщаем об ошибке и выводим данные о ней на экран cout << "Press any key to halt"; cin.get(); exit(1); //выполняем экстренный выход из программы } else{ int x1 = 100; int y1 = 200; int x2 = 300; int y2 = 500; int x3 = 90; int y3 = 600; int triangle [] = {x1,y1, x2,y2, x3,y3}; fillpoly(3, triangle); //3 — это число точек, а triangle — это наш массив с точками для треугольника cin.get(); closegraph(); //Прекращаем работу графического режима } return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
//C++ 3.6 graphics.h MS-DOS Рисование залитого треугольника #include <graphics.h> #include <iostream.h> #include <stdlib.h> struct Point{ double x; double y; }; int main(){ int grdriver = DETECT; //Инициализируем графический драйвер int gmode; initgraph(&grdriver, &gmode, ""); //Инициализируем графический режим int err = graphresult(); //graphresult() возвращает признак успешного запуска графического режима if (err != grOk){ //если произошла ошибка, запускаем этот блок cout << "ERROR" << grapherrormsg(err); //сообщаем об ошибке и выводим данные о ней на экран cout << "Press any key to halt"; cin.get(); exit(1); //выполняем экстренный выход из программы } else{ Point a = {100, 200}; Point b = {300, 500}; Point c = {90, 600}; int triangle [] = {a.x, a.y, b.x, b.y, c.x, c.y}; //Так немного улучшилась читаемость кода fillpoly(3, triangle); //3 — это число точек, а triangle — это наш массив с точками для треугольника cin.get(); closegraph(); //Прекращаем работу графического режима } return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
//C++ 3.7.1 graphics.h MS-DOS Рисование залитого треугольника #include <graphics.h> #include <iostream.h> #include <stdlib.h> struct Point{ double x; double y; }; class Triangle{ Point a, b, c; public: void set_points(Point a_, Point b_, Point c_){ //Правильно void set_points(const Point &a_, const Point &b_, const Point &c_){ a = a_; //пользуемся тем, что структуры одного типа можно присваивать друг в друга b = b_; c = c_; } void show_fill(){ int triangle[] = {a.x, a.y, b.x, b.y, c.x, c.y}; fillpoly(3, triangle); //3 — это число точек, а triangle — это наш массив с точками для треугольника } }; int main(){ int grdriver = DETECT; //Инициализируем графический драйвер int gmode; initgraph(&grdriver, &gmode, ""); //Инициализируем графический режим int err = graphresult(); //graphresult() возвращает признак успешного запуска графического режима if (err != grOk){ //если произошла ошибка, запускаем этот блок cout << "ERROR" << grapherrormsg(err); //сообщаем об ошибке и выводим данные о ней на экран cout << "Press any key to halt"; cin.get(); exit(1); //выполняем экстренный выход из программы } else{ Point a = {100, 200}; Point b = {300, 500}; Point c = {90, 600}; Triangle t1, t2; //Создали два объекта типа Triangle t1.set_points(a, b, c); //устанавливаем значения a.x = 600; a.y = 50; b.x = 400; b.y = 400; c.x = 200; c.y = 110; t2.set_points(a, b, c); t1.show_fill(); t2.show_fill(); cin.get(); closegraph(); //Прекращаем работу графического режима } return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
//C++ 3.7.2 graphics.h MS-DOS Рисование залитого треугольника #include <graphics.h> #include <iostream.h> #include <stdlib.h> struct Point{ int x; int y; }; class Triangle{ Point a, b, c; public: void set_points(Point a_, Point b_, Point c_){ //Правильно void set_points(const Point &a_, const Point &b_, const Point &c_){ a = a_; //пользуемся тем, что структуры одного типа можно присваивать друг в друга b = b_; c = c_; } void show_fill(const int color){ int triangle[] = {a.x, a.y, b.x, b.y, c.x, c.y}; //массив координат трёх точек для треугольника setfillstyle(1, color); //устанавливаем стиль заливки fillpoly(3, triangle); //3 — это число точек, а triangle — это наш массив с точками для треугольника } }; int main(){ int grdriver = DETECT; //Инициализируем графический драйвер int gmode; initgraph(&grdriver, &gmode, ""); //Инициализируем графический режим int err = graphresult(); //graphresult() возвращает признак успешного запуска графического режима if (err != grOk){ //если произошла ошибка, запускаем этот блок cout << "ERROR" << grapherrormsg(err); //сообщаем об ошибке и выводим данные о ней на экран cout << "Press any key to halt"; cin.get(); exit(1); //выполняем экстренный выход из программы } else{ Point a = {100, 200}; Point b = {300, 500}; Point c = {90, 600}; Triangle t1, t2; //Создали два объекта типа Triangle t1.set_points(a, b, c); //устанавливаем значения //обновляем значения точек (для нового треугольника) a.x = 600; a.y = 50; b.x = 400; b.y = 400; c.x = 200; c.y = 110; t2.set_points(a, b, c); //записываем новые точки во второй треугольник t1.show_fill(GREEN); //Показываем треугольники на экране t2.show_fill(YELLOW); cin.get(); closegraph(); //Прекращаем работу графического режима } return 0; } |
Люблю реализацию графики на плюсах. Спасибо, полезная статья =)