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

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

Построения
на плоскости (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#
Среда программирования: 
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 demoscene1
{
    public partial class Form1 : Form
    {
        private Bitmap bitmap;                                        //инициализируем битмэп
        private Graphics graphix;                                     //инициализируем графику
        SolidBrush background = new SolidBrush(Color.Blue);           //задаем цвет фона
        SolidBrush circles = new SolidBrush(Color.White);             //задаем цвет кружков
        float parameter1, parameter2, parameter3, parameter4, parameter5;            //задает вращение кругов
        float step;                                          //шаг анимации
        float angle;                                         //угол вращения
        float x1, y1, x2, y2, x3, y3, x4, y4, x5, y5;        //координаты кружков
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void CirclesLoading()
        {
            bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            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);       //перемещаем координаты в центр 
 
            pictureBox1.BackgroundImage = bitmap;               //здесь будет отображаться анимация
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();                                     //начало работы анимации
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            CirclesLoading();                                   //загружаем функцию с битмэпом, графикой и отображением анимации
            step++;                                             //количество шагов анимации будет постепенно увеличиваться на шаг
            angle += (float)0.02262;                            //изменяем приращение угла
 
            if (step >= 0)
            {
                x1 = -30 + (float)(180 * (float)Math.Sin(0.20285 + angle + parameter1));         //описываем положение кругов
                y1 = -30 + (float)(180 * (float)Math.Cos(0.20285 + angle + parameter1));
                x2 = -30 + (float)(180 * (float)Math.Sin(-0.05285 + angle + parameter2));
                y2 = -30 + (float)(180 * (float)Math.Cos(-0.05285 + angle + parameter2));
                x3 = -30 + (float)(180 * (float)Math.Sin(-0.31295 + angle + parameter3));         
                y3 = -30 + (float)(180 * (float)Math.Cos(-0.31295 + angle + parameter3));
                x4 = -30 + (float)(180 * (float)Math.Sin(-0.55295 + angle + parameter4));        
                y4 = -30 + (float)(180 * (float)Math.Cos(-0.55295 + angle + parameter4));
                x5 = -30 + (float)(180 * (float)Math.Sin(-0.80095 + angle + parameter5));        
                y5 = -30 + (float)(180 * (float)Math.Cos(-0.80095 + angle + parameter5));
 
                graphix.FillEllipse(circles, x1, y1, 50, 50);           //закрашиваем круги
                graphix.FillEllipse(circles, x2, y2, 50, 50);
                graphix.FillEllipse(circles, x3, y3, 50, 50);
                graphix.FillEllipse(circles, x4, y4, 50, 50);
                graphix.FillEllipse(circles, x5, y5, 50, 50);
 
                parameter1 += (float)0.16312;   //начало движения первого круга
 
                if (step > 31)
                {
                    parameter1 -= (float)0.16312;   //прекращение движения первого круга
                    parameter2 += (float)0.16312;   //начало движения второго круга
                }
 
                if (step > 62)
                {
                    parameter2 -= (float)0.16312;   //прекращение движения второго круга
                    parameter3 += (float)0.16312;   //начало движения третьего круга
                }
 
                if (step > 93)
                {
                    parameter3 -= (float)0.16312;   //прекращение движения третьего круга
                    parameter4 += (float)0.16312;   //начало движения четвертого круга
                }
 
                if (step > 124)
                {
                    parameter4 -= (float)0.16312;   //прекращение движения четвертого круга
                    parameter5 += (float)0.16312;   //начало движения пятого круга
                }
 
                if (step > 155)
                {
                    parameter5 -= (float)0.16312;   //прекращение движения пятого круга
                    parameter1 += (float)0.16312;
                }
 
                if (step > 186)
                {
                    parameter1 -= (float)0.16312;
                    parameter2 += (float)0.16312;
                }
 
                if (step > 217)
                {
                    parameter2 -= (float)0.16312;
                    parameter3 += (float)0.16312;
                }
 
                if (step > 248)
                {
                    parameter3 -= (float)0.16312;
                    parameter4 += (float)0.16312;
                }
 
                if (step > 279)
                {
                    parameter4 -= (float)0.16312;
                    parameter5 += (float)0.16312;
                }
 
                if (step > 310)
                {
                    parameter5 -= (float)0.16312;
                    parameter1 += (float)0.16312;
                }
 
                if (step > 341)
                {
                    parameter1 -= (float)0.16312;
                    parameter2 += (float)0.16312;
                }
 
                if (step > 372)
                {
                    parameter2 -= (float)0.16312;
                    parameter3 += (float)0.16312;
                }
 
                if (step > 403)
                {
                    parameter3 -= (float)0.16312;
                }
 
                if (step == 420)            //когда анимация дойдет до 420-го шага, то...
                {
                    parameter1 = 0;         //обнуляем все счетчики
                    parameter2 = 0;
                    parameter3 = 0;
                    parameter4 = 0;
                    parameter5 = 0;
 
                    angle = 0;
 
                    step = 0;
                }
            }
        }
    }
}

Прикрепленный файлРазмер
zakharov_demoscene1.zip54.58 кб