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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2016, 17:20   #1
bubamo
Новичок
Джуниор
 
Регистрация: 23.05.2016
Сообщений: 1
Печаль C# Движение точки по заданной траектории

WindowsFormsApplication13.rar

Есть программа, которая рисует траекторию по формуле. Далее соответственно нужно создать точку которая будет по этой траектории двигаться... В этом собственно и проблема . Вроде как нужно оперировать с таймером, но как это вообще все реализовать непонятно. Народ, хэлп!

Сама программа:

Код:
 using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace WindowsFormsApplication13
{
 
    public partial class Form1 : Form
    {
        public Trajectory cs;
        public Form1()
        {
           
            InitializeComponent();
        }
        
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            const int count = 50;
 
            Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            Point[] ptf = new Point[count];
            pictureBox1.Image = bmp;
 
            cs.Drow(Graphics.FromImage(bmp));
            cs.dubFScale = (double)trackBar1.Value / (double)(trackBar1.Maximum - trackBar1.Minimum);
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            trackBar1.Minimum = 0;
            trackBar1.Maximum = 10;
            trackBar1.Value = (trackBar1.Minimum + trackBar1.Maximum) / 2;   
            cs = new Trajectory();
        
            cs.cx = pictureBox1.Width / 2;
            cs.cy = pictureBox1.Width / 2;
             cs.dubFScale = (double)trackBar1.Value/(double)(trackBar1.Maximum-trackBar1.Minimum);
          
 
        }
И Класс Trajectory

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace WindowsFormsApplication13
{
   public class Trajectory 
    {
        
        public int cx { get; set; }
        public int cy { get; set; }
        public const int count = 50;
        public int k = 5;
        
       public int intFRadius =20;
       public double dubFScale { get; set; }
      
       public  void Drow(Graphics g)
    {  
        Point[] ptf = new Point[count];

      
            double f = 0;
            for (int i = 0; i < ptf.Length; i = i + 1)
            {
                ptf[i].X = (int)(cx + intFRadius * dubFScale* (k - 1) * (Math.Cos(f) + (Math.Cos((k - 1) * f)) / (k - 1)));
                ptf[i].Y = (int)(cy + intFRadius * dubFScale * (k - 1) * (Math.Sin(f) - (Math.Sin((k - 1) * f)) / (k - 1)));
                f = f + 2 * Math.PI / count;




            }
   
            g.DrawPolygon(Pens.Black, ptf);
           
            g.Dispose();
    }
    }
}
bubamo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas.Движение шарика по заданной нарисованной траектории yurotchka Мультимедиа в Delphi 2 22.06.2013 20:35
Движение объектов по траектории Vladlena Общие вопросы C/C++ 0 19.05.2013 18:38
Движение фигуры по траектории Dgohn Общие вопросы Delphi 3 08.01.2009 09:36
движение вокруг тела по заданной траектории PADOCTb Помощь студентам 2 12.10.2008 16:39