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

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

Построения
на плоскости (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.Black); //цвет фона
        SolidBrush col1 = new SolidBrush(Color.White); //белый и черный цвета кругов
        SolidBrush col2 = new SolidBrush(Color.Black);
 
        float x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8, x9, y9, x10, y10; //объявляем координаты каждого круга
 
        float shag = 0; //переменная для движения
        int cnt = 0; //счетчик для анимации
 
        public Form1()
        {
            InitializeComponent(); //инициализация компонентов на форме
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start(); //при загрузке формы начинается анимация
        }
 
        private void Circles()//функция изменения фигуры
        {
            myBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);//создаем битмап
            g = Graphics.FromImage(myBitmap);//создаем графику                       
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//добавляем сглаживание
            g.FillRectangle(bgcol, 0, 0, 500, 500);//заливаем фон
 
            g.TranslateTransform((float)pictureBox1.Width / 2, (float)pictureBox1.Height / 2);//смещаем начало координат в центр
 
            x10 = -23 + shag;//задаем начальные координаты кругов с переменной shag, которая будет меняться в процессе анимации
            y10 = -23;
 
            x9 = -46 - shag;
            y9 = -46;
 
            x8 = -69 + shag;
            y8 = -69;
 
            x7 = -92 - shag;
            y7 = -92;
 
            x6 = -115 + shag;
            y6 = -115;
 
            x5 = -138 - shag;
            y5 = -138;
 
            x4 = -161 + shag;
            y4 = -161;
 
            x3 = -184 - shag;
            y3 = -184;
 
            x2 = -207 + shag;
            y2 = -207;
 
            x1 = -230 - shag;
            y1 = -230;
 
            g.FillEllipse(col1, x1, y1, 460, 460);//рисуем круги с заданными координатами
            g.FillEllipse(col2, x2, y2, 414, 414);
            g.FillEllipse(col1, x3, y3, 368, 368);
            g.FillEllipse(col2, x4, y4, 322, 322);
            g.FillEllipse(col1, x5, y5, 276, 276);
            g.FillEllipse(col2, x6, y6, 230, 230);
            g.FillEllipse(col1, x7, y7, 184, 184);
            g.FillEllipse(col2, x8, y8, 138, 138);
            g.FillEllipse(col1, x9, y9, 92, 92);
            g.FillEllipse(col2, x10, y10, 46, 46);
 
            pictureBox1.BackgroundImage = myBitmap;//отображаем битмап на pictureBox
 
        }
 
        private void timer1_Tick_1(object sender, EventArgs e)
        {
            cnt++; // с каждым шагов увеличиваем счетчик на 1
            if (cnt <= 20) //если значение cnt меньше либо равно 20,...
            {
                shag += (float)0.5; //...то движемся вправо(белые кружки)/влево(черные кружки)
            }
            if (cnt >= 20) //если cnt превысило 20...(1)
            {
                if (cnt >= 60) //если cnt превысило 60...(2)
                {
                    if (cnt == 80) //если cnt дошло до 80 (конец анимации), то
                    {
                        shag = 0; //обнуляем все значения и начинаем сначала
                        cnt = 0;
                    }
                    shag += (float)1; //...(2), то движемся вправо(белые кружки)/влево(черные кружки) к начальной позиции
                }
                shag += (float)-0.5; //...(1), то движемся в обратную сторону
            }
 
            Circles();//прорисовываем круги
        }
    }
}

Прикрепленный файлРазмер
Gavrilenko_Moving_Circles.rar37.09 кб