2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Линейная алгебра. Помогите плиз
Сообщение16.12.2009, 00:56 
Всем привет. Вот моя проблема.
Мне необходимо на делфи сделать анимацию прямой которая ходит по дуге окружности "туда сюда". Вот собственно и вопрос :
Изображение

На данном выше рисунке необходимо найти(В ДАННОЙ СИСТЕМЕ КООРДИНАТ) $(x_?,y_?)$ при заданных координатах $(x_0,y_0)$ $(x_1,y_2)$ $(x_1,y_3)$ и угол $\alpha_2$ $\alpha_3$. $\alpha$ изменяется с течением времени.

P.s. У меня было две идеи.
1) Запишем уравнение прямой $y=kx+b$ где $k=\tan{(\alpha)}$. Тогда точку можно найти как $y_0=kx_0+b$ и $y_?=kx_?+b$
Длину прямой можно найти по формуле $l=\sqrt {(x_?-x_0)^2+(y_?-y_0)^2}$ Возведя в квадрат и подставляя наши уравнения прямых получим $l^2-(kx_0-kx_?)^2=(x_?-x_0)^2$. Вынося $k$из скобки и перенеся скобку на право получим $l^2=(x_?-x_0)^2-k^2(x_0-x_?)^2$. $\dfrac {l} {\sqrt {1+k^2}}=x_?-x_0$ => $x_?=\dfrac {l} {\sqrt {1+k^2}+x_0}$. Вот получили координату. Только я не уверен в знаках потому ,что во первых если поменять в самом начале $x_0$ и $x_?$ от есть вот так : $(x_0-x_?)$ то в итоге поменяются знаки и будет $x_?=x_0-\dfrac l {\sqrt {1+k^2}}$ ? а во вторых извлекая корень я не учитывал плюс минус перед скобкой ( это надо делать или нет ? ).
2) Намного проще способ. Просто в данной системе координат спроектировать на они вектора и получится $(x_0-l\cos(\alpha),y_0-l\sin(\alpha )) $ . Проверьте пожалуйста правильно ли я знаки учел.

Конечно же если бы мы за место $k$поставили $\tan {(\alpha)}$ то в конечно итоге из 1) мы бы получили 2). Но всё дело в знаках. Совершенно запутался =). Подскажите где не так.

 
 
 
 Re: Линейная алгебра. Помогите плиз
Сообщение16.12.2009, 03:00 
Точка $(x_{?},y_{?})$ легко находится из двух условий
1. Расстояние между точками $(x_{?},y_{?})$ и $(x_{0},y_{0})$ равно расстоянию между точками $(x_{1},y_{1})$ и $(x_{0},y_{0})$.
2. Векторы определяемые точками $(x_{2},y_{2})$, $(x_{0},y_{0})$ и точками $(x_{?},y_{?})$, $(x_{0},y_{0})$ коллинеарны.

Составляете простую систему уравнений и решаете.

То что вы предлагаете нельзя назвать решением. Откуда вы возмете угловой коеффициент $k$ ? Кстати угол $\alpha$ неправильно нарисован, угловой коеффициент $k $не равен тангенсу нарисованного угла.

 
 
 
 Re: Линейная алгебра. Помогите плиз
Сообщение16.12.2009, 08:19 
Вам бы следовало бы явно заявить, что точка $(x_0,y_0)$ является центром окружности, а не какой-то фиксированной точкой плоскости для закрепления одного конца прямой. Мы вынуждены догаываться до этого только из тех соображений, что Вы ничего более про окружность не написали. А $l$ --- радиус?
Так это или не так --- в обоих случаях задачка крайне простая, но плохо (путанно) сформулированная. (Ну и с линейной алгеброй как-то не вяжется).

Похоже, у Вас $$x_?=x_0+R\cos\varphi,\quad y_?=y_0+R\sin\varphi.$$ Обычные полярные координаты. Не знаю, кто такая Дельфи, но во всех языках (Фортран, Алгол, PostScript, TCL, ...) обычно имеется функция $\arctg(\Delta y,\Delta x)$, именно с двумя аргументами, и именно в таком порядке. Она Вам и выдаст нужный угол $\varphi_?=\arctg(y_i-y_0,x_1-x_0)$. Называться она может atan, arg, arctan, ...

 
 
 
 Re: Линейная алгебра. Помогите плиз
Сообщение16.12.2009, 08:27 
Аватара пользователя
$x_? = x_0 - R \cos \alpha$
$y_? = y_0 - R \sin \alpha$
$R = \sqrt{(x_0-x_1)^2 + (y_0-y_1)^2}$

-- Ср дек 16, 2009 11:30:24 --

Sintanial в сообщении #271877 писал(а):
Проверьте пожалуйста правильно ли я знаки учел.

Правильно :)

 
 
 
 Re: Линейная алгебра. Помогите плиз
Сообщение16.12.2009, 08:36 
Аватара пользователя
 !  Дубль удалён!

У Вас есть кнопка Изображение и час времени после опубликования для редактирования своих сообщений.

 
 
 
 Re: Линейная алгебра. Помогите плиз
Сообщение16.12.2009, 10:31 
Да. Это маленькая часть окружности. Извините что плохо сформулировал. А $l$ это радиус =).

Алексей К. Как раз таки угол нам всегда известен. Мне надо сделать анимацию механической системы. А это только маленькая её часть. Угол я нахожу из другой часть механизма.

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group