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

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

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

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Bitmap myBitmap;//объявляем bitmap
        Graphics g;//объявляем графику
 
        SolidBrush bgcol = new SolidBrush(Color.White);//цвет фона будет белым
        SolidBrush col1 = new SolidBrush(Color.White);//изначально каждому кругу устанавливаем белый цвет
        SolidBrush col2 = new SolidBrush(Color.White);
        SolidBrush col3 = new SolidBrush(Color.White);
        SolidBrush col4 = new SolidBrush(Color.White);
        SolidBrush col5 = new SolidBrush(Color.White);
        SolidBrush col6 = new SolidBrush(Color.White);
 
        float x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6;//объявляем координаты каждого круга
 
        float angle;//угол
        int c1, c2;//этими переменными будем менять цвета
        int cnt;//понадобится для таймера
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();//вызвается таймер
        }
 
 
        private void Dots()//функция изменения фигуры
        {
            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);//заливаем фон
 
            g.TranslateTransform((float)pictureBox1.Width / 2, (float)pictureBox1.Height / 2);//смещаем начало координат в центр
 
 
            SolidBrush col1 = new SolidBrush(Color.FromArgb(255, c2, 0));//каждый цвет заливки в формате ргб изменяем так, чтоб он переходил в соседний
            SolidBrush col2 = new SolidBrush(Color.FromArgb(255, 127-c1, 127-c1));
            SolidBrush col3 = new SolidBrush(Color.FromArgb(c2, c1, 255-c1));
            SolidBrush col4 = new SolidBrush(Color.FromArgb(0, 127-c1, 255));
            SolidBrush col5 = new SolidBrush(Color.FromArgb(0, 255-c1, c2));
            SolidBrush col6 = new SolidBrush(Color.FromArgb(255-c2, 255, 0));
 
            x1 = -40 + (float)(180 * (float)Math.Cos(1.570796325 + angle));//описываем движение кругов
            y1 = -40 + (float)(180 * (float)Math.Sin(1.570796325 + angle));
 
            x2 = -40 + (float)(180 * (float)Math.Cos(2.617993875 + angle));
            y2 = -40 + (float)(180 * (float)Math.Sin(2.617993875 + angle));
 
            x3 = -40 + (float)(180 * (float)Math.Cos(3.665191425 + angle));
            y3 = -40 + (float)(180 * (float)Math.Sin(3.665191425 + angle));
 
            x4 = -40 + (float)(180 * (float)Math.Cos(4.712388975 + angle));
            y4 = -40 + (float)(180 * (float)Math.Sin(4.712388975 + angle));
 
            x5 = -40 + (float)(180 * (float)Math.Cos(5.759586525 + angle));
            y5 = -40 + (float)(180 * (float)Math.Sin(5.759586525 + angle));
 
            x6 = -40 + (float)(180 * (float)Math.Cos(6.806784075 + angle));
            y6 = -40 + (float)(180 * (float)Math.Sin(6.806784075 + angle));            
 
            g.FillEllipse(col1, x1, y1, 80, 80);//рисуем сами круги
            g.FillEllipse(col2, x2, y2, 80, 80);               
            g.FillEllipse(col3, x3, y3, 80, 80);  
            g.FillEllipse(col4, x4, y4, 80, 80);   
            g.FillEllipse(col5, x5, y5, 80, 80);  
            g.FillEllipse(col6, x6, y6, 80, 80);     
 
            pictureBox1.BackgroundImage = myBitmap;//и отображаем Bitmap на pictureBox
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            angle -= (float)0.00411;//изменяем приращение угла
            cnt++;//увеличиваем переменную количества
            //так как палитра красных, зеленых и синих цветов должна изменятся неравномерно, 
            //то мы будем изменять кое-какие цвета в два раза чаще, чем другие
            if (cnt % 2 == 0) { c1++; }
            c2++;
            if (cnt == 255) { angle = 0; cnt = 0; c1 = 0; c2 = 0; }//когда таймер пройдет определенное количество циклов, все обнуляем
 
            Dots();//вызываем функцию прорисовки
        }
    }
}

Прикрепленный файлРазмер
ColorDotsTravin.zip48.52 кб