Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.12.2021
Сообщений: 32

Как нарисовать движущийся объект

12.12.2022, 19:44. Показов 341. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть рисунок зонтика, как добавить фигуру капли через drawEllipse, которая падает вниз на зонтик (Скорость анимации вводится в textBox), а активация анимации через кнопку?
Вот сам код, не знаю что нужно изменить, чтобы сделать эту каплю
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
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 lab5_2
{
    public partial class Form1 : Form
    {
        Graphics graphics;
        Bitmap bmp, pictureOne;
        Pen pen;
        SolidBrush brush;
 
        int Y = 5;
 
        ColorDialog colorDialog = new ColorDialog();
        Timer timer = new Timer();
 
 
        Color colorPen = Color.Black;
        Color colorFill = Color.Black;
        Color colorMovingFragment = Color.Black;
        public Form1()
        {
            InitializeComponent();
 
            if (colorDialog.ShowDialog(this) == DialogResult.OK)
                colorPen = colorDialog.Color;
 
            if (colorDialog.ShowDialog() == DialogResult.OK)
                colorFill = colorDialog.Color;
 
            if (colorDialog.ShowDialog() == DialogResult.OK)
                colorMovingFragment = colorDialog.Color;
 
            textBox1.Text = "50";
            showPicture();
            Draw();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            timer.Enabled = false;
            timer.Interval = Convert.ToInt32(textBox1.Text);
            timer.Start();
        }
        public void showPicture()
        {
            bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            pictureBox1.Image = bmp;
            graphics = Graphics.FromImage(bmp);
            pictureOne = new Bitmap(@"C:\Users\Yura\Desktop\ъуъ\pictureOne.jpg");
            Rectangle rect = new Rectangle();
            rect.X = 0;
            rect.Y = 0;
            rect.Width = pictureBox1.Width;
            rect.Height = pictureBox1.Height;
            graphics.DrawImage(pictureOne, rect);
        }
        public void Draw()
        {
            if (Y == 60)
            {
                timer.Enabled = false;
                Y = 60;
                showPicture();
                Draw();
            }
            else
            {
                brush = new SolidBrush(Color.White);
                graphics.FillRectangle(brush, 200, 50, 200, 200);
 
                pen = new Pen(colorPen);
                pen.Width = 2;
                var points1 = new Point[]
                {
                    new Point(300, 50),
                    new Point(270, 110),
                    new Point(315,115),
                    new Point(300, 50)
                };
                graphics.DrawLines(pen, points1); // Средний треугольник
                
                var points2 = new Point[]
                {
                    new Point(300, 50),
                    new Point(250, 95),
                    new Point(270, 110)
                };
                graphics.DrawLines(pen, points2); // Левый треугольник
 
                var points3 = new Point[]
                {
                    new Point(300, 50),
                    new Point(330, 95),
                    new Point(315, 115)
                };
                graphics.DrawLines(pen, points3); // Правый треугольник
 
                var points4 = new Point[]
                {
                    new Point(290, 112),
                    new Point(285, 170)
                };
                graphics.DrawLines(pen, points4); // Левая ножка
 
                var points5 = new Point[]
                {
                    new Point(295, 113),
                    new Point(290, 165)
                };
                graphics.DrawLines(pen, points5); // Правая ножка
 
                var points6 = new Point[]
                {
                    new Point(285, 170),
                    new Point(290, 175),
                    new Point(300, 175),
                    new Point(310, 170)
                };
                graphics.DrawCurve(pen, points6); // Нижняя кривая
 
                var points7 = new Point[]
                {
                    new Point(290, 165),
                    new Point(295, 167),
                    new Point(305, 162)
                };
                graphics.DrawCurve(pen, points7); // Верхняя кривая
 
                var points8 = new Point[]
                {
                    new Point(310, 170),
                    new Point(305, 162)
                };
                graphics.DrawLines(pen, points8); // Закрывает ручку
 
                var points9 = new Point[]
                {
                    new Point(290, 112),
                    new Point(285, 170),
                    new Point(290, 175),
                    new Point(300, 175),
                    new Point(310, 170),
                    new Point(305, 162),
                    new Point(295, 167),
                    new Point(290, 165),
                    new Point(295, 113)
                };
                brush = new SolidBrush(colorFill);
                graphics.FillPolygon(brush, points9); // Заливка ручки
 
                pen = new Pen(colorMovingFragment);
                if (Y != 60)
                {
                    graphics.DrawEllipse(pen, 260, Y, 10, 10);
                    Y++;
                }
 
            }
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2022, 19:44
Ответы с готовыми решениями:

Движущийся объект
создать приложение которое отобразит на экране движущийся непредсказуемо объект приложение должно обеспечивать следующие возможности : 1....

Как нарисовать объект меньшего размера при нажатом Shift или Alt?
Доброго времени суток друзья! Встал перед такой проблемой.. Как сделать так, чтобы при нажатии клавиши Shift + Мышь или же Alt + Мышь,...

Выделить движущийся объект в видео какой либо рамкой
Здравствуйте! Задача состоит в том что мне нужно выделить движущийся объект в видео какой либо рамкой ну или вообще выделить. Допустим...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.12.2022, 19:44
Помогаю со студенческими работами здесь

Как элементарно нарисовать движущийся по аркоцилоиде круг в Delphi средствами OpenGL(2D)?
Собственно сабж

Движущийся объект
Доброго времени суток, мне нужно создать самый простой двигающийся объект, допусти прямогульник или треугольник,двигающийся по окружности....

Движущийся объект
Добрый вечер У меня такая проблема. Нужно сделать программу, которая будет использовать двойную буферизацию. Суть в следующем....

движущийся объект
Всем привет! Как можно сделать движущийся объект (например прямоугольник) с заданной скоростью winapi c++?

Движущийся объект
import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JButton; import javax.swing.JFrame; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru