Уроки, алгоритмы, программы, примеры

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

У меня проблема вот с этим: gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);. Вылезает ошибка: CS1061 "object" не содержит определения "GL_COLOR_BUFFER_BIT", и не удалось найти доступный метод расширения "GL_COLOR_BUFFER_BIT",...
Большое спасибо. Единственный код который прошел без каких либо ошибок. Ура!!!
Скажите пожалуйста, подскажите алгоритм по которому по заданным точкам можно определить тип многогранника, скажем это куб или прямоугольный параллелепипед. Нашел теорию по этим фигурам: https://www.mat... https://www.mat... Акцентировать внимание...
Всем у кого не работает. файл wizard.script Ещё одно упоминание Glut32 в строке "if (!VerifyLibFile(dir_nomacro_lib, _T("glut32"), _T("GLUT's"))) return false;" меняем на "if (!VerifyLibFile(dir_nomacro_lib, _T("freeglut"), _T("GLUT's"))) return...
Не получается, емаё

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Язык программирования: 
C#
Среда программирования: 
Microsoft Visual Studio 2013

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Цветные_треугольники
{
    public partial class Form1 : Form
    {
        Bitmap myBitmap;//объявляем bitmap
        Graphics g;//объявляем графику
 
        SolidBrush bgcol = new SolidBrush(Color.AntiqueWhite);//цвет фона
 
        SolidBrush blue = new SolidBrush(Color.FromArgb(180, 3, 55, 134)); //полупрозрачная синяя заливка
        SolidBrush red = new SolidBrush(Color.FromArgb(180, 134, 3, 10)); //полупрозрачная красная заливка
 
        Pen redPen = new Pen(Color.Red); //красный контур
        Pen bluePen = new Pen(Color.Blue); //синий контур
 
        float xr1, yr1, xr2, yr2, xr3, yr3; // коэффициенты приращения для красного треугольника
        float xb1, yb1, xb2, yb2, xb3, yb3; // коэффициенты приращения для синего треугольника
 
        int cnt;//счетчик
 
        public Form1()
        {
            InitializeComponent(); //инициализация компонентов
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true; //при загрузке формы включается таймер
        }
 
 
        private void DrawTriangles()//функция изменения фигуры
        {
            myBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);//создаем битмап
            Graphics g = Graphics.FromImage(myBitmap);//создаем графику                       
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//добавляем сглаживание
            g.FillRectangle(bgcol, 0, 0, 500, 500);//заливаем фон
 
 
            PointF rA = new PointF(25 + xr1, 100 + yr1); //задаем точки - координаты треугольника с увеличивающимся шагом, который равен x(конечное)-x(начальное)/50
            PointF rB = new PointF(300 + xr2, 50 + yr2);
            PointF rC = new PointF(100 + xr3, 310 + yr3);
 
            PointF bA = new PointF(445 + xb1, 180 + yb1);
            PointF bB = new PointF(330 + xb2, 450 + yb2);
            PointF bC = new PointF(215 + xb3, 275 + yb3);
 
 
            PointF[] RedTriangle = { rA, rB, rC }; //задаем массив из меняющихся координат треугольника
            PointF[] BlueTriangle = { bA, bB, bC };
 
            g.DrawPolygon(redPen, RedTriangle); //рисуем контуры треугольников
            g.DrawPolygon(bluePen, BlueTriangle);
 
            g.FillPolygon(red, RedTriangle); //заливаем их
            g.FillPolygon(blue, BlueTriangle);
 
            pictureBox1.BackgroundImage = myBitmap;// отображаем Bitmap на pictureBox
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            cnt++; //увеличиваем счетчик
 
            if (cnt < 50) //увеличиваем шаг до тех пор, пока значение счетчика не достигнет 50
            {
                xr1 += (float)2.5;
                yr1 += (float)6;
                xr2 += (float)1.6;
                yr2 += (float)2.8;
                xr3 += (float)6.7;
                yr3 += (float)2.5;
 
                xb1 += (float)-8.1;
                yb1 += (float)-2.2;
                xb2 += (float)-1.4;
                yb2 += (float)-7.8;
                xb3 += (float)-1.3;
                yb3 += (float)1.5;
            }
 
 
            if (cnt >= 50) //как только cnt >= 50 - уменьшаем шаг (т.е. возвращаем треугольники на прежнее место)
            {
                xr1 += (float)-2.5;
                yr1 += (float)-6;
                xr2 += (float)-1.6;
                yr2 += (float)-2.8;
                xr3 += (float)-6.7;
                yr3 += (float)-2.5;
 
                xb1 += (float)8.1;
                yb1 += (float)2.2;
                xb2 += (float)1.4;
                yb2 += (float)7.8;
                xb3 += (float)1.3;
                yb3 += (float)-1.5;
            }
 
            if (cnt == 100) { xr1 = 0; yr1 = 0; xr2 = 0; yr2 = 0; xr3 = 0; yr3 = 0; xb1 = 0; yb1 = 0; xb2 = 0; yb2 = 0; xb3 = 0; yb3 = 0; cnt = 0; } //анимация закончилась, обнуляем счетчик, значения приращения и начинаем сначала
 
            DrawTriangles(); //прорисовываем треугольники
        }
    }
}

Прикрепленный файлРазмер
Gavrilenko_Coloured_Triangles.rar38.29 кб