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

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

Построения
на плоскости (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;
using System.Threading;
 
 
 
namespace Lab1
{
 
    public partial class Form1 : Form
    {
 
        //параметры изменения координат кругов, и его радиуса
        double cnt1 = 1.0, cnt2 = 1.0, cnt5 = 2.5, cnt6 = 2.5, cnt31 = 1, cnt32 = 1.5, cnt41 = 1, cnt42 = 1.5, cnt71 = 1.6, cnt72 = 2.56, cntr = 1, ctra = 0.1;
        //начальные координаты всех кругов
        double x1 = 100.0, y1 = 100.0, x2 = 100.0, y2 = 100.0, x3 = 100.0, y3 = 100.0, x4 = 100.0, y4 = 100.0, x5 = 100.0, y5 = 100.0, x6 = 100.0, y6 = 100.0, x7 = 100.0, y7 = 100.0, x8 = 100.0, y8 = 100.0;
        //Инициализация bitmap и графики
        private Bitmap My;
        private Graphics g;
        //началный радиус
        double r = 300;
        // толщина круга
        double a = 9;
 
        public Form1()
        {
            InitializeComponent();
        }
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
            timer1.Start();
        }
 
 
 
 
        private void Draw1(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double x5, double y5, double x6, double y6, double x7, double y7, double x8, double y8, double r, double a)
        {   //Создаем bitmap
            My = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            //Создаем графику из bitmap
            Graphics g = Graphics.FromImage(My);
 
            Pen Gl2 = new Pen(Color.White, (int)a); 
 
            //прорисовка каждого круга
           g.DrawEllipse(Gl2, (int)x1,(int) y1, (int)r, (int)r);
           g.DrawEllipse(Gl2, (int)x2, (int)y2, (int)r, (int)r);
           g.DrawEllipse(Gl2, (int)x3, (int)y3, (int)r, (int)r);
           g.DrawEllipse(Gl2, (int)x4, (int)y4, (int)r, (int)r);
           g.DrawEllipse(Gl2, (int)x5, (int)y5, (int)r, (int)r);
           g.DrawEllipse(Gl2, (int)x6, (int)y6, (int)r, (int)r);
           g.DrawEllipse(Gl2, (int)x7, (int)y7, (int)r, (int)r);
           g.DrawEllipse(Gl2, (int)x8, (int)y8, (int)r, (int)r);
        }
 
 
 
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            //Создаем bitmap
            My = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            //Создаем графику из bitmap
            Graphics g = Graphics.FromImage(My);
          //cnt определяет цфет фона и шара если "0" то шар синий фон белый
 
 
            //вызов функции прорисовки кругов
            Draw1(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8,  y8, r, a);
 
            //изменение толщины
            a = a - ctra;
            if (a <= 5) { ctra = -ctra; }
            if (a >= 9) { ctra = -ctra; }
 
            //измененние радиуса
            r = r - cntr;
            if (r <= 260) { cntr = -cntr; }
            if (r >= 300) { cntr = -cntr; }
            //изменение положения 
            y1 = y1 - cnt1;
            x2 = x2 - cnt2;
            y5 = y5 + cnt5;
            x6 = x6 + cnt6;
            x3 = x3 - cnt31;
            y3 = y3 + cnt32;
            x4 = x4 + cnt42;
            y4 = y4 - cnt41;
            x7 = x7 + cnt72;
            y7 = y7 + cnt71;
            x8 = x8 + cnt71;
            y8 = y8 + cnt72;
 
            //изменение стороны движения на противоположную
            if (y1 <= 60) { cnt1 = -cnt1; }
            if (y1 >= 100) { cnt1 = -cnt1; }
 
            if (x2 <= 60) { cnt2 = -cnt2; }
            if (x2 >= 100) { cnt2 = -cnt2; }
 
            if (x3 <= 60) { cnt31 = -cnt31; cnt32 = -cnt32; }
            if (x3 >= 100) { cnt31 = -cnt31; cnt32 = -cnt32; }
            if (x4 >= 160) { cnt41 = -cnt41; cnt42 = -cnt42; }
            if (x4 <= 100) { cnt41 = -cnt41; cnt42 = -cnt42; }
 
            if (y5 >= 200) { cnt5 = -cnt5; }
            if (y5 <= 100) { cnt5 = -cnt5; }
 
            if (x6 <= 100) { cnt6 = -cnt6; }
            if (x6 >= 200) { cnt6 = -cnt6; }
 
            if (x7 >= 200) { cnt71 = -cnt71; cnt72 = -cnt72; }
            if (x7 <= 100) { cnt71 = -cnt71; cnt72 = -cnt72; }
 
 
            //Выводим содержимое на picturebox
            pictureBox1.BackgroundImage = My;
 
            //задержка в положениях максимального раскрытия и сжатия
            if (y1 <=60) { Thread.Sleep(500);}
            if (y1 >= 100) { Thread.Sleep(500); }
        }
 
 
   }
}

Прикрепленный файлРазмер
Muzychuk_rings.zip56.35 кб