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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 09:40   #1
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
Смех Движение окружности по трактрисе

Привет, форумчане!
Нужна помощь!
Необходимо визуализировать траекторию движения окружности по трактрисе!
ПРоблем с реализацией на ЯВУ нет.
Есть проблема с формулами
Может кто подскажет, по каким формулам координаты рассчитываются?!
No_Comments вне форума Ответить с цитированием
Старый 25.03.2013, 17:08   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

В вики же формула есть... Допустим по трактрисе двигается центр, стерли старую окружность, вычислили новый центр и нарисовали.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 26.03.2013, 14:16   #3
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

А эта формула правильная?!
No_Comments вне форума Ответить с цитированием
Старый 26.03.2013, 14:35   #4
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Сомневаетесь? В гугле куча результатов с формулой - сравните, откройте учебник...
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 26.03.2013, 18:19   #5
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Помогите найти ошибку, пожалуйста!!!
Код:
 public partial class Form1 : Form
    {
        private int x1, y1, x2, y2;
        private double a, t, fi;
        private Pen pen = new Pen(Color.DarkRed, 2);

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawEllipse(pen, x2, y2,20,20);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            fi += 0.01;
            t = Math.Tan(fi);
            x2 =(int) (a * (Math.Log(t, Math.E) + Math.Cos(fi)));
            y2 = (int)(a * Math.Sin(fi));
            Invalidate(); 

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            x1 = ClientSize.Width / 2;
            y1 = ClientSize.Height / 2;
            a = 150;
            fi = -0.5;
            t = Math.Tan(fi);
            x2 = (int)(a*(Math.Log(t, Math.E)+Math.Cos(fi))) ;
            y2 = (int)(a*Math.Sin(fi));

        }
No_Comments вне форума Ответить с цитированием
Старый 26.03.2013, 18:19   #6
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Вот параметрическое описание трактрисы

No_Comments вне форума Ответить с цитированием
Старый 27.03.2013, 06:02   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Начните с того, что tan(-0.5) отрицателен и log от него - NaN, в итоге падают эксепшены.
phomm вне форума Ответить с цитированием
Старый 27.03.2013, 06:53   #8
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Спасибо за совет
Теперь на форме появляется окружность и движется от левого края формы к правой.
Но, когда окружность пропадает за правым краем формы, через какое-то время появляется на форме красный крест, как на этой картинке.


Перед вызовом Invalidate() поставила условие if(fi < Math.PI) чтобы избежать вызова метода, т.к. tg(PI)=0... Думала, поможет.
No_Comments вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
движение по окружности(C#) liisasha Помощь студентам 0 13.06.2012 17:03
Движение окружности What's_That? Паскаль, Turbo Pascal, PascalABC.NET 11 28.07.2011 21:19
движение окружности по окружности MyQwErTy Помощь студентам 13 04.11.2008 22:52
Движение окружности Ensoph Помощь студентам 4 25.09.2008 12:11
Движение по окружности Mickle Общие вопросы Delphi 3 13.04.2007 16:24