Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2020, 12:06   #1
poly27
Новичок
Джуниор
 
Регистрация: 01.06.2020
Сообщений: 2
По умолчанию Анимация в c#

Здравствуйте. Помогите, пожалуйста, избавиться от мигания анимации. И еще при запуске формы, в верхнем углу видно окружность. Можно ее как-то сдвинуть?
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApp8
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private PointF tek_pt;// int x = 130, y = 20;
private PointF start_pos = new Point(230, 50);
private int tek_ind;
private double v = 1;
private int rad = 20;//радиус окружности
List<PointF> points = new List<PointF>();
Graphics g;

private void buttonStart_Click(object sender, EventArgs e)
{
points.Clear();
try
{
int length = 50;//размер
int count = int.Parse(textBox1.Text);
if (count < 3)
{
MessageBox.Show("Количество вершин должно быть не менее тёрх! ");
Application.Exit();
}
if (count > 20)
{
MessageBox.Show("Очень большое количество вершин. ");
Application.Exit();
}
if (count < 0) count = -count;//если введено отрицательное число
double R = length / (2 * Math.Sin(Math.PI / count));
for (double angle = 0.0; angle <= 2 * Math.PI; angle += 2 * Math.PI / count)
{
int x = (int)(R * Math.Cos(angle));
int y = (int)(R * Math.Sin(angle));
points.Add(new PointF((int)R + x + start_pos.X, (int)R + y + start_pos.Y));
}
this.Invalidate();
tek_pt = new PointF(points[0].X, points[0].Y);
tek_ind = 1;
timer1.Start();
}
catch
{
MessageBox.Show("Данные введены не корректно!");
}
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
g = e.Graphics;
e.Graphics.FillEllipse(Brushes .Red, tek_pt.X - (rad / 2), tek_pt.Y - (rad /2), rad, rad);
if (points.Count >= 3)
e.Graphics.DrawPolygon(Pens.Bl ue, points.ToArray());
}
private void timer1_Tick(object sender, EventArgs e)
{
if (tek_ind != points.Count - 1)
{
PointF A = tek_pt;
PointF B = points[tek_ind];
if (Math.Sqrt(((B.X - A.X) * (B.X - A.X)) + ((B.Y - A.Y) * (B.Y - A.Y))) <= v)
{
tek_pt = points[tek_ind];
B = points[tek_ind + 1];
tek_ind += 1;
}
double k1 = B.X - A.X;
double k2 = B.Y - A.Y;
double h = Math.Sqrt((A.X - B.X) * (A.X - B.X) + (A.Y - B.Y) * (A.Y - B.Y)) / v;
double x = A.X + (k1 / h);
double y = A.Y + (k2 / h);
tek_pt = new PointF((float)x, (float)y);
Invalidate();
}
else
{
tek_ind = 1;
}
}
}
}
Изображения
Тип файла: jpg Y1F9P0XRpnA.jpg (21.2 Кб, 3 просмотров)
Вложения
Тип файла: rar WindowsFormsApp8.rar (189.8 Кб, 2 просмотров)
poly27 вне форума Ответить с цитированием
Старый 02.06.2020, 12:13   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

poly27, обращайтесь e-mail: informatik101@mail.ru
Telegram: @alexcoder1
vk.com/alexcoder1
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 02.06.2020, 20:19   #3
sauwork
Пользователь
 
Аватар для sauwork
 
Регистрация: 02.01.2015
Сообщений: 12
По умолчанию

пишите
почта: sauwork@yandex.ru , телега: @sauwork
sauwork вне форума Ответить с цитированием
Старый 03.06.2020, 03:17   #4
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

ТЗ, срок, бюджет: larbossfreelance@yandex.ru Метка: freelance Указывайте ссылку на тему форума.
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 03.06.2020, 13:09   #5
user1238
Новичок
Джуниор
 
Регистрация: 19.04.2020
Сообщений: 1
По умолчанию

Уже решили на другом форуме
user1238 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
АНИМАЦИЯ BboyBlackjack C# (си шарп) 0 07.12.2013 23:54
анимация Petyu Общие вопросы Delphi 1 10.01.2013 12:40
Анимация. Cause Помощь студентам 6 06.11.2010 15:45
анимация в c++ win api Deathsoul Помощь студентам 1 08.05.2010 15:58
Анимация Ya luo si la fu Помощь студентам 1 27.03.2010 17:42