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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 18:36   #1
ros.pro
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 39
По умолчанию Cистема отсчета координат

Доброго времени суток, уважаемые форумчане!

Можно ли в делфи изменить систему отсчета координат?
Чтобы не от верхнего левого угла, а на стандартную от левого нижнего угла?

А то треугольник поворачивается не правильно... Хотя пользуюсь простыми формулами тригонометрии...

Заранее спасибо.
ros.pro вне форума Ответить с цитированием
Старый 13.11.2011, 19:44   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А формулы чуть подправить слабо? А то сразу диверсию против ОС
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.11.2011, 09:33   #3
ros.pro
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 39
По умолчанию

не могу понять как подправить эту формулу, для расчета координат точки, после поворота на угол:
rx1 := x1 * cos(angle) - y1 * sin(angle);
ry1 := x1 * sin(angle) + y1 * cos(angle);
ros.pro вне форума Ответить с цитированием
Старый 14.11.2011, 09:45   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Задаете смещение и все. Попробуйте сами - выберите произвольную точку. И задайте координаты сначала в одной системе, а потом в другой системе координат. Так Вы найдете нужные коэффициенты.
Цитата:
Чтобы не от верхнего левого угла, а на стандартную от левого нижнего угла?
Открою Вам маленькую тайну - стандартом считается отсчет от верхнего левого угла...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.11.2011, 09:56   #5
ros.pro
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Задаете смещение и все. Попробуйте сами - выберите произвольную точку. И задайте координаты сначала в одной системе, а потом в другой системе координат. Так Вы найдете нужные коэффициенты.

Открою Вам маленькую тайну - стандартом считается отсчет от верхнего левого угла...
ок! понял вас! спасибо.

А про стандарт... всегда же во всех мануалах, ось У стремиться вверх...
ros.pro вне форума Ответить с цитированием
Старый 14.11.2011, 10:02   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По идее ось X нужно сместить вниз и поменять направление по оси Y. Т.е. полученный Y умножаем на -1 и уменьшаем скажем на 600?
Цитата:
во всех мануалах, ось У стремиться вверх
Но не в винде
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.11.2011, 10:07   #7
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

не только в винде, между прочим
В принципе для компьютеров началом отсчета координат всегда является верхний-левый угол экрана, и нет никаких проблем при желании перенести ее, или написать вспомогательный класс (процедуру) для того чтобы делать это все в автоматическом режиме
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 14.11.2011, 10:17   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
rx1 := x1 * cos(angle) - y1 * sin(angle);
ry1 := x1 * sin(angle) + y1 * cos(angle);
во-первых, это бред какой-то.
Почему у Вас на координату X влияет Y и наоборот?!

формула поворота выглядит примерно так:
Код:
  x := x0 + round(r * cos(angle * 2 * pi / 360));
  y := y0 - round(r * sin(angle * 2 * pi / 360));
где X0, Y0 - центр поворота.
R - радиус (расстояние от нужной точки до центра поворота) поворота,
angle - угол поворота в градусах.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2011, 10:52   #9
ros.pro
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 39
По умолчанию

Это не бред, это учебник по линейной алгебре. И, если пользоваться формулой на бумаге, все прекрасно работает.
ros.pro вне форума Ответить с цитированием
Старый 14.11.2011, 11:04   #10
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

хм.. и правда полдходит
вам всего то нужно прибавить к искомым x,y определенные значения (сдвиг по осям, например x+300,y+200) и взять y с минусом при отрисовке, и все будет нормально
ну и не забывать что угол должен быть задан в радианах
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик обратного отсчета! YuZi_2009 PHP 3 11.02.2011 14:50
Cистема с простой переменной... leha_demi Общие вопросы C/C++ 0 08.11.2010 21:11
Таймер обратного отсчета Bilargo Помощь студентам 6 30.09.2009 17:02
Таймер обратного отсчета на С Raptor Помощь студентам 6 08.01.2008 01:11