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

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

Построения
на плоскости (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 2015

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 WindowsFormsApplication8
{
    public partial class Form1 : Form
    {
        private Bitmap bitmap;                                        //инициализируем битмэп
        private Graphics graphix;                                       //инициализируем графику
 
        SolidBrush background = new SolidBrush(Color.FromArgb(255 ,231 ,186));           //задаем цвет фона
 
        SolidBrush ellipse1 = new SolidBrush(Color.FromArgb(139 ,0 ,139));          //задаем цвета кружков
        SolidBrush ellipse2 = new SolidBrush(Color.FromArgb(0 ,0 ,139));
 
        int k = 50;                 //расстояние между кружками
        int i, j;                   //переменные циклов отрисовки
        int cnt;                    //счетчик
        int s1 = 50, s2 = 0;            //площадь кружков
        float x1, y1, x2, y2;           //координаты кружков
        float angle;                    //отвечает за угол поворота
 
        private void FillEllipse()
        {
            bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);             //создаём графику из bitmap
            graphix = Graphics.FromImage(bitmap);
            graphix.FillRectangle(background, 0, 0, pictureBox1.Width, pictureBox1.Height);     //закрашиваем фон
            graphix.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;           //сглаживание
            graphix.TranslateTransform((float)pictureBox1.Width / 2, (float)pictureBox1.Height / 2);   //перемещаем координаты в центр 
 
            graphix.RotateTransform(angle);             //поворачиваем на нужный угол 
 
            for (i = 0; i <= 14; i++)                   // рисуем кружки 
            {
                for (j = 0; j <= 14; j++)
                {                
                    graphix.FillEllipse(ellipse1, -380 + j * k - x1, -380 + i * k - y1, s1, s1);
                }
 
                j = 0;
            }
 
            for (i = 0; i <= 14; i++)
            {
                for (j = 0; j <= 14; j++)
                {
                    graphix.FillEllipse(ellipse2,-333 + j * k - x2,-333 + i * k - y2, s2, s2);
                }
 
                j = 0;
            }
 
            pictureBox1.BackgroundImage = bitmap;               //отображаем битмап на pictureBox
 
        }
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            cnt++;
            FillEllipse();          //рисуем кружки
            angle += (float)0.3;   //увеличиваем угол
            if (cnt < 50)               //пока счетчик меньше 50-ти уменьшаем фиолетовые кружки и увеличиваем синие
            {
                s1--;
                x1 += (float)0.1;
                y1 += (float)0.1;
                s2++;
                x2 -= (float)0.1;
                y2 -= (float)0.1;                
            }
 
            if(cnt > 50)                //как только счетчик становится больше 50-ти начинаем увеличивать фиолетовые кружки и уменьшать синие
            {
                s1++;
                x1 -= (float)0.1;
                y1 -= (float)0.1;
                s2--;
                x2 += (float)0.1;
                y2 += (float)0.1;         
            }
 
            if( cnt == 100)             //как только счетчик становится равным 100 обнуляем переменные и начинаем заново
            {
                s1 = 50;
                s2 = 0;
                cnt = 0;
            }
        }
    }
}

Прикрепленный файлРазмер
Volkov_Circles.rar49.79 кб