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

Вход на сайт

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

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

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

У Вас число превысит максимальное число int. Можно использовать в Вашем случае uint, но лучше все переписать на double.
Добавление к программе строки glutReshapeFunc(changeSize); приводит к тому, что треугольник перестаёт совсем отрисовываться.
Выдаёт ошибку glut32.dll не найден! При том, что он лежит в System32! Всё решил) Нужно отправить не в System32, а в System.
Спасибо за статью. Я не Ваш студент. Но мне она помогла написать функцию для Канторова множества на Python для черепашки: import turtle def kanter(x, y, d):     if d > 1:         turtle...
Как реализовать в данном примере границы расчёта?

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

Рейтинг@Mail.ru Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
Visual Studio 2015
Статья по теме: 

В этом примере показана элементарная спрайтовая анимация на примере птички из Angry Birds. Меняются три спрайта птички и постепенно увеличивается скорость смены этих спрайтов.
В imageList1 добавляются спрайты.
imageList1.Draw(Graphics, Point, int): Graphics - задать графику, Point - точка(левый верхний угол спрайта), int - индекс спрайта в imageList1.
timer1.Interval = timer1.Interval - 10; уменьшаем интервал таймера на 10.

Код программы: 

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 Sprite
{
    public partial class Form1 : Form
    {
        Graphics g;
        Bitmap buf;
        public Form1()
        {
            InitializeComponent();
            buf = new Bitmap(pictureBox1.Width, pictureBox1.Height);//Определение буфера
            g = Graphics.FromImage(buf);//Определение графики из буфера
            g.FillRectangle(new SolidBrush(Color.White), 0, 0, pictureBox1.Width, pictureBox1.Height);
            timer1.Enabled = true;
        }
 
        int stage = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (stage < 1)
            {
                imageList1.Draw(g, new Point(5, 0), 0);
                stage++;
            }
            else if (stage < 2)
            {
                imageList1.Draw(g, new Point(5, 2), 1);
                stage++;
            }
            else if (stage < 3)
            {
                imageList1.Draw(g, new Point(0, 5), 2);
                stage++;
            }
            if (stage == 3)
			{
				stage = 0;
				timer1.Interval = timer1.Interval - 10;
			} 
            if (timer1.Interval <= 10) timer1.Interval = 600;
            pictureBox1.Image = buf;
        }
    }
}