Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 11
.NET 4.x

Анимация падения

07.03.2015, 15:33. Показов 5212. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, делаю сейчас проект на шарпе, появился вопрос по поводу того, как лучше организовать анимацию падения: есть математическое выражение в виде изображения на picturebox, есть какой либо красивый и аккуратный способ организовать анимация его падения? пока есть только идея попиксельного сдвига через цикл for на нужное количество пикселей
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.03.2015, 15:33
Ответы с готовыми решениями:

Анимация одновременного падения нескольких звезд
Помогите создать программу, показывающую падение нескольких звезд одновременно

Анимация падения окна.
Вот знаю можно создать анимацию например окно движется по осям X, Y, Z (Z = удаляется, приближается). Вот интересно, а как сделать, чтобы...

Анимация падения квадратика
Здравствуйте, нужно сделать анимацию, чтобы нарисованный квадратик падал вниз через какие-то промежутки времени. Я понимаю как это...

3
20 / 16 / 8
Регистрация: 16.07.2014
Сообщений: 151
07.03.2015, 15:57
Цитата Сообщение от ВячеславКр Посмотреть сообщение
пока есть только идея попиксельного сдвига через цикл for на нужное количество пикселей
Всегда пользовался по пиксельно, и по локациям. Смотря какая анимация. Чего и Вам советую
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
07.03.2015, 16:16
ВячеславКр,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
using System.Drawing;
using System.Net;
using System.Windows.Forms;
 
namespace WindowsFormsApplication257
{
    public partial class Form1 : Form
    {
        private Particle ball;
 
        public Form1()
        {
            InitializeComponent();
 
            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint, true);
 
            var img = (Bitmap)Image.FromStream(new WebClient().OpenRead(@"http://i273.photobucket.com/albums/jj225/t00ny45/FIFA-Stars/ball.png"));
            img.SetResolution(92, 92);
            ball = new Particle { Image = img, Position = new PointF(200, 200), Velocity = new PointF(-10, 0) };
 
            Application.Idle += new EventHandler(Application_Idle);
        }
 
        void Application_Idle(object sender, EventArgs e)
        {
            ball.Update(0.01f);
            Invalidate();
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawImage(ball.Image, new PointF(ball.Position.X - ball.Size.Width / 2, ClientSize.Height - (ball.Position.Y + ball.Size.Height / 2)));
        }
 
        protected override void OnMouseDown(MouseEventArgs e)
        {
            ball.Position = new PointF(200, 200);
            ball.Velocity = new PointF(-10, 0);
        }
    }
 
    public class Particle
    {
        public Image Image;
        public PointF Velocity;
        public PointF Position;
 
        public Size Size { get { return Image.Size; } }
 
        public const float g = 9.8f;
        public const float groundFriction = 0.9f;
        public const float airFriction = 0.999f;
 
 
        public void Update(float dt)
        {
            //сила тяжести
            var a = new PointF(0, -g);
            Velocity = Velocity.Add(a, dt);
 
            //трение об воздух
            Velocity = Velocity.Mult(airFriction);
 
            //отскок от земли
            if (Position.Y - Size.Height/2 < 0)
            {
                Velocity = Velocity.Mult(-groundFriction);
                Position = new PointF(Position.X, Image.Height / 2);
            }
            else
                //движение
                Position = Position.Add(Velocity, dt);
        }
    }
 
    static class Helper
    {
        public static PointF Mult(this PointF p, float koeff)
        {
            return new PointF(p.X*koeff, p.Y*koeff);
        }
 
        public static PointF Add(this PointF p1,  PointF p2, float koeff = 1f)
        {
            return new PointF(p1.X + p2.X * koeff, p1.Y + p2.Y * koeff);
        }    
    }
}
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
07.03.2015, 16:28
sinx/x.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2015, 16:28
Помогаю со студенческими работами здесь

Анимация падения объекта
здравствуйте уважаемые прогеры! есть вопрос. дано задание сделать анимацию прыжка с раскрытием парашюта в определенный момент времени....

Анимация в OpenGL, а где собсно, анимация?
// Bounce.cpp // Demonstrates a simple animated rectangle program with GLUT // OpenGL SuperBible, 3rd Edition // Richard S. Wright...

Падения посещаемости!
После последнего Яндекс выдачи 22.07.2010 резко упал трафик на одном из крупных ресурсов. Что может быть? Как бороться? Ссылки стоят...

WD после падения
Всем добрый вечер, у Бати рабочий переносной жеский диск фирмы WD серии Passport Ultra, он его уронил с высоты ну не более полу метра, в...

Падения в позициях
Итак. Сайт адалт тематики. тИЦ 80, PR 3. По одному ВЧ неделю висел на седьмом месте в яше. после предполеднего апа упал на девятую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru