Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/112: Рейтинг темы: голосов - 112, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 12.10.2010
Сообщений: 4

движение объектов в C#

12.10.2010, 01:29. Показов 23423. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть солнечная система. нужно сделать так чтоб планеты двигались по эллипсу вокруг солнца, как задать движение?????
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2010, 01:29
Ответы с готовыми решениями:

Движение объектов
делаю игру танк. На поле 5 танков, но они движутся у меня асинхронно(одинаково). Кажется все правильно сделал, в чем ошибка, наведите на...

Graphics: Движение объектов по одной траектории
Ребят помогите пожалуйста.У меня программа на C# ,она создаёт два объекта,после нажимаем на кнопку "запуск 1 объекта,начинает...

Оптимальная система вывода множества графических объектов и их движение
Здравствуйте программисты У меня к вам следующий вопрос: Есть большое количество(5000-20000) объектов(квадраты 2*2 определенного...

13
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
12.10.2010, 08:59

Не по теме:

Божественный размах. :D
По секрету: в солнечной системе планеты уже движутся ;)



по теме: раскрой подробнее суть проблемы (как создана система, чем реализованы планеты и т.п.)
0
1 / 1 / 0
Регистрация: 12.10.2010
Сообщений: 4
12.10.2010, 10:44  [ТС]
каждая планета это изображение в pictureBox. вот им нужно задать движение по эллипсу. Вот скриншот и код (что я пока сделал):
Миниатюры
движение объектов в C#   движение объектов в C#   движение объектов в C#  

движение объектов в C#  
0
 Аватар для d0s'A
153 / 113 / 25
Регистрация: 23.06.2008
Сообщений: 320
12.10.2010, 12:28
Красиво! Ну и в чем проблема функцию эллипса не знаем?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
12.10.2010, 18:30
Borgir_1, ну вопервых для каждой планеты понадобится свой таймер (скорее всего), т.к. у них разная угловая скорость (для расчетов посмотри учебники по физике и астрономии). А дальше сплошная математика подсчета координат нового положения для каждой планеты.

Цитата Сообщение от Borgir_1 Посмотреть сообщение
как задать движение
каждый раз по таймеру задаешь расчетные координаты picturebox.Location
0
1 / 1 / 0
Регистрация: 12.10.2010
Сообщений: 4
12.10.2010, 20:59  [ТС]
если можно, поконкретнее с расчетами (может есть пример) я пробовал, но что-то не получается...
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
12.10.2010, 21:30
Borgir_1, лень голову забивать, посмотри здесь

Добавлено через 6 минут
а лучше здесь
0
3 / 2 / 1
Регистрация: 28.05.2010
Сообщений: 121
14.10.2010, 11:35
Здравствуйте! У меня та - же проблема. Можете написать кусок кода который определяет следуюшие координаты? У меня не выходит что-то
0
 Аватар для tasty_sock
139 / 137 / 21
Регистрация: 26.01.2010
Сообщений: 350
14.10.2010, 12:08
C#
1
2
3
4
5
for (int i = 0; i < 10; i += 1)
{
  pictureBox1.Location = new Point(pictureBox1.Location.X + 10, pictureBox1.Location.Y);
  Thread.Sleep(10);
}
Принцип, надеюсь, ясен.
1
Заблокирован
14.10.2010, 12:14
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
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
 
namespace oval
{
    public class Program:Form 
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Program());
        }
        double x=0, y=0;
        double cx=200, cy=200;
        double r = 100;
        double a = 0;
        double koef = 0.5;
        Timer t = new Timer();
        Program()
        {
            this.Size = new Size( 400, 400);
            this.Paint += new PaintEventHandler(Program_Paint);
            t.Interval = 100;
            t.Tick += new EventHandler(t_Tick);
            t.Start();
        }
 
        void t_Tick(object sender, EventArgs e)
        {
            a+=5;
            if (a > 360) a -= 360;
            x = r * Math.Cos (a * Math.PI /180);
            y = koef*r * Math.Sin(a * Math.PI / 180);
            Invalidate();
        }
 
        void Program_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = this.CreateGraphics();
            g.DrawRectangle(new Pen(Brushes.Red), Convert.ToInt32(cx - 100), Convert.ToInt32(cy - 100),
                Convert.ToInt32(cx), Convert.ToInt32(cy));
            g.FillEllipse(Brushes.Red, Convert.ToInt32(cx + x-10), Convert.ToInt32(cy + y-10), 20, 20);
            g.Dispose();
        }
    }
}
0
1 / 1 / 0
Регистрация: 12.10.2010
Сообщений: 4
15.10.2010, 23:41  [ТС]
С движением все ок . Всем спасибо!

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
public partial class Form1 : Form
    {
        double ang = 360;
       
        int r = 180;
        int r1 = 69;
               
        public Form1()
        {
            InitializeComponent();
            
        }
      
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            
            Pen el = new Pen(Color.SlateBlue, 1);
            g.DrawEllipse(el, 440, 275, 370, 142);
            }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            
                Timer x = new Timer();
                x.Interval = 1;
                x.Start();
                x.Tick += new EventHandler(x_Tick);
           
                   }
 
      
        private void x_Tick(object sender, EventArgs e)
        {
           
            pictureBox1.Location = new Point(Convert.ToInt32(r*Math.Cos(ang)+620), Convert.ToInt32(r1*Math.Sin(ang)+337));
            ang -= 0.1;
           
            }
Теперь проблема с мерцанием изображения при движении. Пробовал с двойной буфферизацией - результатов не особенно .

C#
1
this.SetStyle(ControlStyles.DoubleBuffer |ControlStyles.UserPaint |ControlStyles.AllPaintingInWmPaint,true);
или
C#
1
this.DoubleBuffered = true;
или
C#
1
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
если есть какие-то идеи, подскажите пожалуйста
1
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
16.10.2010, 09:19
Borgir_1, работал когда-то с графикой, как мне показалось, мерцание происходит из-зи использования картинок больших разрешений. Еще вариант реализовать рисование в фоновом потоке, когда отрисовка закончена выкидывать Image на форму. Все сугубо теоритически и на практике не проверялось
0
90 / 89 / 13
Регистрация: 28.09.2010
Сообщений: 262
16.10.2010, 09:22
Я уже объяснял как избавиться от мерцания тут Вывод видео
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
12.12.2010, 10:35
а можно ли подобную прогу сделать на С++, или она сложнее будет?

Добавлено через 9 минут
а можете код проги этой полностью скинуть7
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2010, 10:35
Помогаю со студенческими работами здесь

Движение объектов.Таймер
Задача: Форма содержит поля ввода «Количество кнопок», «Скорость движения px/сек», кнопки «Старт», «Стоп» и панель темно-синего цвета....

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

Волнообразное движение объектов
У меня такой вопрос, как осуществить волнообразное движение объектов при их столкновении на C#

Движение объектов по форме
Господа,есть попытка создания игры &quot;Гонки&quot;.Не получается при обновлении координаты Y для объекта бордюр ,заставить его перемещаться по...

Одновременное движение разных объектов
Добрый день, я пишу арканоид и столкнулся с такой проблемой: по отдельности у меня движутся мячик (по таймеру) и платформа (по клавишам),...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
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
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru