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

Вход на сайт

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

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

Спасибо за статью. Я не Ваш студент. Но мне она помогла написать функцию для Канторова множества на Python для черепашки: import turtle def kanter(x, y, d):     if d > 1:         turtle...
Как реализовать в данном примере границы расчёта?

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Язык программирования: 
C#
Среда программирования: 
Microsoft Visual Studio Community C#

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 WindowsFormsApplication8
{
    public partial class Form1 : Form
    {
        private Bitmap b;//создаём bitmap и графику
        private Graphics g;
        SolidBrush bl = new SolidBrush(Color.Black);//определяем цвет ромба
        SolidBrush wh = new SolidBrush(Color.White);//определяем цвет креста-маски
 
 
        int k;
        float x = 0, w = 0;
        int angle = 45;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();//в данной функции вызвается таймер
 
        }
        private void Draw()//функция изменения фигуры
        {
            b = new Bitmap(pictureBox1.Width, pictureBox1.Height);//создаём графику из bitmap
            Graphics g = Graphics.FromImage(b);
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//для сглаживания
 
            g.FillRectangle(wh, 0, 0, 500, 500);//заливаем фон
            g.TranslateTransform((float)pictureBox1.Width / 2, (float)pictureBox1.Height / 2);//делим координатную сетку 
 
            g.RotateTransform(angle);//поворачиваем на заданный угол
 
            g.FillRectangle(bl, -119, -119, 238, 238);//отрисовываем ромб
            g.FillRectangle(wh, -120, x, 240, w);//отрисовываем крест-маску
            g.FillRectangle(wh, x, -120, w, 240);
 
            pictureBox1.BackgroundImage = b;
 
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (angle < 405)//описываем вращение ромба
            {
                angle++;
            }
            if (angle >= 405) angle = 45;
 
 
            if (k < 40)//описываем изменение размера креста-маски
            {
                x -= 1;
                w += 2;
                k++;
            }
            if (k >= 40 && k <= 90)
            {
                x += 1;
                w -= 2;
                k++;
            }
            if (k > 90)
            {
                k = 0; w = 0; x = 0;
            }
 
            Draw();
 
 
 
            pictureBox1.BackgroundImage = b;
 
        }
    }
}