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

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

Построения
на плоскости (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 WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        //Инициализация bitmap и графики
        Bitmap bmp;
        Graphics g;
 
        int param = 0;
        Point[] center = new Point[8];//координаты центров
        Point[] newpoint = new Point[8];//координаты изменяющейся точки на окружности
        int s = 150;//диаметр окружности
        double alpha = Math.PI / 4;//угол на который изменяется центр каждой окружности
        public Form1()
        {
            InitializeComponent();
        }
        //функция вращения точки вокруг точки p
        private Point rotate(Point p,int R)
        {
            Point res = Point.Empty;
 
            res.X = (int)(p.X - R * Math.Cos(alpha));
            res.Y = (int)(p.Y + R * Math.Sin(alpha));
            return res;
        }
        //функция прорисовки
        private void drawing(int j)
        {
            Point p = Point.Empty;
            //Создаем bitmap и графику из bitmap
            bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            g = Graphics.FromImage(bmp);
            //Создаем объекты для закрашивания фигур
            SolidBrush black = new SolidBrush(Color.Black);
            SolidBrush white = new SolidBrush(Color.White);
            Pen myPen = new Pen(Color.White, 2);
            Point a = Point.Empty;
 
            //координаты центра
            p.X = pictureBox1.Width / 2-s/2;
            p.Y = pictureBox1.Height / 2-s/2;
            //заливка фона
            g.FillRectangle(black, 0, 0, pictureBox1.Width, pictureBox1.Height);
            //задание радиуса для построения всех окружностей
            int R = pictureBox1.Width/2-s/2;
            for (int i = 0; i < 8;i++ )
            {
                alpha =i*Math.PI/4;//увелечение угла вращения относительно начала
                a = rotate(p,R);//получение новых координат
                //задание центров
                center[i].X = a.X + s / 2;
                center[i].Y = a.Y + s / 2;
                //рисование окружности
                g.DrawEllipse(myPen, a.X, a.Y, s, s);
            }
            //цикл для движения точки по каждой окружности
            for (int i = 0; i < 8;i++ )
            {
                    alpha = ((i%4)*20+j) * Math.PI / 60;//изменение угла вращения для изменения скорости каждой точки
                    a=rotate(center[i],s/2);//вращение точки по окружности
                    newpoint[i] = a;//запоминание новых координат точки на окружности
                    g.FillEllipse(white,a.X-3,a.Y-3,6,6);//рисование точки на окружности
                    //рисование линий между всеми парами точек
                    for (int p1 = 0; p1 < 8; p1++)
                    {
                        for (int p2 = p1; p2 < 8; p2++)
                        {
                            g.DrawLine(myPen,newpoint[p1],newpoint[p2]);
                        }
                    }
            }
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            //запуск таймера
            timer1.Start();
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
 
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            //изменение параметра
            param++;
            param %= 120;
            drawing(param);//рисование
            //отображаем bitmap на PictureBox
            pictureBox1.Image = bmp;
        }
    }
}

Прикрепленный файлРазмер
Lines-Sherfedinov.zip6.13 кб