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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 18:44   #1
Байт
 
Регистрация: 13.08.2008
Сообщений: 9
По умолчанию Поворот прямой

Есть такой вопрос как осуществить поворот прямой на определенный угол? т.е. в итоге 2 прямых, одна исходная а другая (с тем же центром) только на определенном угле.

Новые точки (x y) ищу по формулам

x` = x * cos(угол) - y * sin(угол)
y` = x * sin(угол) + y * cos(угол)

Вообще надо сделать через матрицу поворота (но я решил для начала это опустить)
uses GraphABC, crt;


var i,j: integer;
begin

matrix[1,1] := 400;
matrix[1,2] := 200;

{200,200 это начальная точка (из нее должна выходить вторая прямая}
Line(200,200,round(matrix[1,1]),round(matrix[1,2]));
{ nx1 - новая x nx2 -новая коорд. y}
nx1 := (cos(90)* (matrix[1,1])) - (sin(90) * (matrix[1,2]) );
nx2 := (sin(90)* (matrix[1,1])) + (cos(90) * (matrix[1,2]) );
{ строим вторую прямую}
Line(200,200, (round(nx1) ), (round(nx2) );


end.

Но в общем-то ничего не выходит)
Байт вне форума Ответить с цитированием
Старый 15.02.2010, 20:48   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

У прямой нет "центра"...

Цитата:
Сообщение от Байт Посмотреть сообщение
x` = x * cos(угол) - y * sin(угол)
y` = x * sin(угол) + y * cos(угол)
Ты поворачиваешь относительно начала координат. Чтобы повернуть относительно другой точки:
1. Перенеси начало координат в точку, относительно которой выполняется поворот ((200,200) в данном примере, я так понял...).
2. Выполни поворот по этим формулам.
3. Перенеси начало координат "на место".

Added 18:57 CET
Ну и углы, наверное, в радианах? Спроси у кого-нибудь, кто Паскаль знает...

Последний раз редактировалось Vago; 15.02.2010 в 20:56.
Vago вне форума Ответить с цитированием
Старый 15.02.2010, 22:41   #3
Байт
 
Регистрация: 13.08.2008
Сообщений: 9
По умолчанию

спасибо, разобрался
Байт вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки в прямой речи Scolopendra Microsoft Office Word 13 10.12.2009 11:21
Движение обьекта по прямой Wi1D Помощь студентам 1 16.05.2009 21:21
Увеличения угла - поворот прямой на угол. Lemo Помощь студентам 8 30.03.2009 20:48
Пересечение прямой и круга CoGnaC Паскаль, Turbo Pascal, PascalABC.NET 8 11.03.2008 17:01
Анимация прямой NecroSlider Помощь студентам 3 23.04.2007 13:31