Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.04;
Скачать: CL | DM;

Вниз

Движение объектов по форме   Найти похожие ветки 

 
aka   (2011-11-16 17:23) [0]

Здравствуйте. Объясните как должно быть правильно.

Имеем:

1)  координаты по X и Y, также окружность центр которой на координатной плоскости совпадает с [0,0].
2) радиус окружности = 250 пикселей.
3) плюсуя X - объект двигается вправо, плюсуя Y - объект двигается вниз.
4) плюсуя X и Y на одно и тоже значение - объект двигается по диагонали
вниз слева на право. НО НУЖНО СДЕЛАТЬ ЧТОБЫ ОБЪЕКТ ДВИГАЛСЯ С ОДНОЙ СКОРОСТЬЮ Т.Е. нужно плюсовать не по единице к Х и Y, а где-то по 0.7, потому как плюсуя по единице получится, что объект движется быстрее и выйдет быстрее за приделы окружности начиная двигаться с центра.

Вопрос: как зная градус, вычеслить правильное значение X и У, на которое нужно увеличивать значение координат объекта для движение с одной "скоростью"


 
OW ©   (2011-11-16 17:29) [1]

cos x
sin y


 
Jeer ©   (2011-11-16 17:33) [2]

Достаточно школьных знаний о Sin/Cos, использования для вычислений данных типа float ( single, double ).
Знания русского  тоже не помешают.


 
Kerk ©   (2011-11-16 17:42) [3]

Можно и без sin/cos. Логики и теоремы пифагора достаточно.


 
boriskb ©   (2011-11-16 17:47) [4]


> Jeer ©   (16.11.11 17:33) [2]
>...Знания русского  тоже не помешают.


Теперь уже поздно.
Сейчас только мешать будут.


 
Jeer ©   (2011-11-16 17:48) [5]


> Kerk ©   (16.11.11 17:42) [3]
>
> Можно и без sin/cos. Логики и теоремы пифагора достаточно.
>


Если движения ограничены углами на 8 румбов, то - да.
Даже достаточно знания корня квадратного из 2 :)


 
Kerk ©   (2011-11-16 17:50) [6]


> Jeer ©   (16.11.11 17:48) [5]
> Если движения ограничены углами на 8 румбов, то - да.

Так они и ограничены пикселями. Тут вся эта double-точность нафиг не нужна.


 
Jeer ©   (2011-11-16 17:51) [7]

Вопрос не по px, а по углам.
Переход ТС к дискретному мышлению - это следущий этап.


 
Jeer ©   (2011-11-16 17:54) [8]


> Тут вся эта double-точность нафиг не нужна.


Если чел моделирует движение ФОБОС-ГРУНТ к Марсу, то очень даже нужна :)


 
aka   (2011-11-16 17:55) [9]


> Достаточно школьных знаний о Sin/Cos, использования для
> вычислений данных типа float ( single, double ).
> Знания русского  тоже не помешают.

Не обошлось без...

понятно что
     sin (45°) = sin (π/4) = (√2)/2 = 1/√2 = 0.7 = Y
   сos (45°) = cos (π/4) = (√2)/2 = 1/√2 = 0.7 = X
Я же значение 0.7 для движение по диагонали  не из потолка взял.
Вопрос в том, как задать градус переменной от 0..359 и получить нужные Х и У.
Вариант конечно - создать таблицу из 360 значений для каждой координаты, но а посчитать как?


 
Jeer ©   (2011-11-16 17:59) [10]

?
Т.е. Vx = Sin(Alpha) и Vy = Cos(Alpha) уже не хляют ?


 
Dimka Maslov ©   (2011-11-16 18:02) [11]

Раньше в школах практиковалось использование четырёхзначных таблиц Брадиса. Хорошая штука для того, чтобы вычислить значения синуса и косинуса для любого угла, а не только 45°.


 
RWolf ©   (2011-11-16 18:02) [12]


> как задать градус переменной от 0..359

gradus:=0;

gradus:=gradus+1;


> и получить нужные Х и У.

sin() и cos() по определению делают именно это, не?


 
Jeer ©   (2011-11-16 18:03) [13]


> Dimka Maslov ©   (16.11.11 18:02) [11]
>
> Раньше в школах практиковалось использование четырёхзначных
> таблиц Брадиса.


Эк, хватанул - это из области фантастики для них сейчас.


 
Dimka Maslov ©   (2011-11-16 18:16) [14]


> Jeer ©   (16.11.11 18:03) [13]


Человек хочет создать таблицу. Но когда он её таки создаст и ВНЕЗАПНО осознает, какой удар со стороны классика от получил... Пусть уж лучше добросовестно перепишет значения синусов и косинусов оттуда. Я же не предлагаю в ряды раскладывать.


 
aka   (2011-11-16 18:17) [15]


> > и получить нужные Х и У.
>
> sin() и cos() по определению делают именно это, не?


Как я должен в таком случае преобразовать градусы, если значение для син и кос в диапазоне 0..1, а не задаются в градусах?


 
RWolf ©   (2011-11-16 18:17) [16]


> Если движения ограничены углами на 8 румбов, то - да.

я, помнится, в школе в процессе изучения тригонометрии пытался аналитически выводить синусы/косинусы также для углов, кратных 3°, и небезуспешно. Неплохое приближение к окружности получится.


 
RWolf ©   (2011-11-16 18:18) [17]


> Как я должен в таком случае преобразовать градусы, если
> значение для син и кос в диапазоне 0..1, а не задаются в
> градусах?

sin/cos принимают значение аргумента в радианах.
один радиан — сколько градусов?


 
SQLEX ©   (2011-11-16 18:21) [18]

фигасе, понаписано :)

а я помню, как в одном шутере, реально получалось пулей носится, если под 45 всегда двигаться. Т.е. вперед и в бок зажимаешь и понеслась. По сетке оппоненты даже в читерстве подозревали :)


 
Dimka Maslov ©   (2011-11-16 18:22) [19]


> один радиан — сколько градусов?


Что-то мне подсказывает, что это какое-то, я не побоюсь этого слова, иррациональное число


 
Jeer ©   (2011-11-16 18:23) [20]


> синусы/косинусы также для углов, кратных


Такие вещи были распространены даже в мое время, т.к. облегчали счет в уме ( прикидку ).


 
aka   (2011-11-16 18:31) [21]


> SQLEX ©   (16.11.11 18:21) [18]
>
> фигасе, понаписано :)
>
> а я помню, как в одном шутере, реально получалось пулей
> носится, если под 45 всегда двигаться. Т.е. вперед и в бок
> зажимаешь и понеслась. По сетке оппоненты даже в читерстве
> подозревали :)


Во, там они не считали sin/cos угла, плюсовали в лоб.


> sin/cos принимают значение аргумента в радианах.
> один радиан — сколько градусов?

А в Delphi, что они в радианах? Я думал от 0 до 1.

Короче тут без таблицы Брадиса не обойтись.


 
Empleado ©   (2011-11-16 18:31) [22]


> Dimka Maslov ©   (16.11.11 18:02) [11]

А сейчас (в настоящее время) их отменили что ль?...


 
aka   (2011-11-16 18:51) [23]

А как Брадис вычислял свою таблицу? Подбором или по формуле?


 
Kerk ©   (2011-11-16 18:54) [24]

Как-то так, в общем.

Radius := 250;
X0 := 500;
Y0 := 500;

for I := 1 to 360 do
begin
 Rad := I*Pi/180;
 X := Radius * sin (Rad);
 Y := Radius * cos (Rad);  
 Paint (X0+X, Y0+Y);
end;


Думать и проверять влом, вдруг и так заработает.


 
Dimka Maslov ©   (2011-11-16 19:05) [25]


>  Empleado ©   (16.11.11 18:31) [22]


А пёс его знает. Могли и отменить. Юристы они такие юристы.


> А как Брадис вычислял свою таблицу

Скорее всего начертил окружность. (Есть такой прибор, называется циркуль). Потом взял транспортир (тоже есть такой прибор). Отложил на окружности градусы, а потом при помощи треугольника (и такой есть) опустил на горизонтальную ось из каждой точки перпендикуляр. Линейкой замерил высоту перпендикуляра и расстояние от центра окружности до точки пересечения оси с перпендикуляром, поделил одно число на другое, и получил искомые величины. Для промежуточных значений использовалась квадратичная интерполяция.


 
aka   (2011-11-16 19:06) [26]


> Kerk ©   (16.11.11 18:54) [24]


все правильно, извините я забыл про градус*Pi/180;


 
Jeer ©   (2011-11-16 20:16) [27]


> > А как Брадис вычислял свою таблицу
>
> Скорее всего начертил окружность.


Да ладно.
Основой вычисления многих табличных функций в то время, служили приемы упрощения счета, изобретенные Непером, а именно - замена умножения и деления на сложение и вычитание через логарифмирование.
Таблицы логарифмов Непера и были первыми "калькуляторами".

Кроме того, допуская заранее заданную погрешность, можно выполнить вычисления, к примеру синуса, через тригонометрические преобразования, сводя угол к сумме углов для которых син/кос известны ( легко вычисляются ) и малому углу, для которого sin(x) = x, cos(x) = sqrt(1-x^2)
Далее - все тривиально.

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


 
Dimka Maslov ©   (2011-11-16 20:36) [28]


> Да ладно.


Ну ясен пень, что не так. Способов много.


 
Dimka Maslov ©   (2011-11-16 20:36) [29]


> Да ладно.


Ну ясен пень, что не так. Способов много.


 
Jeer ©   (2011-11-16 20:36) [30]

Злостный оффтоп :)

"я считал их по копытам."

Уволился из армии штурман.
Вернулся в родной колхоз. Просит взять на работу.
Председатель его спрашивает:
- Что делать умеешь?
- Ну, считать хорошо умею.
- Правда хорошо? Ну, если правда, возьму счетоводом. Только сперва проверю.
Приводит он штурмана в коровник.
- Сколько тут коров?
- Тридцать две.
- Надо же! Правильно!
Выводит во двор:
- Сколько коров?
- Сто девять.
- Надо же! И как быстро сосчитал!
Выводит штурмана на луг:
- Сколько коров?
- Тысяча сто двенадцать.
- Слушай, я вообще не понимаю, как ты так быстро считаешь? Ведь двух секунд не прошло!
- Да всё просто. Посчитал количество сосков, разделил на четыре и взял поправку на яйца.


 
Jeer ©   (2011-11-16 20:45) [31]

"Стырено" (С)

Прочитал книгу «Таблицы…» некоего Брадиса.

Конечно, книга тяжёлая при всей своей малости объёма, я бы даже сказал: не для всех. К тому же несколько архаична. Теперь так не пишут. Увы, теперь ТАК не пишут! А как сейчас читают: наискосок, по диагонали, скорочтением с безмыслием. Каково бессмыслие написанного – таково и безмыслие чтения.
Но вдумчивый читатель «Tabulas» (или как там по латыни) всегда может найти глубину связей в главах «Синусы и косинусы». Ищущий развлечений запросто развлечётся в главе «Тангенсы и котангенсы». Жаждущий философии всегда найдёт для себя нечто завораживающее в «Десятичных логарифмах», а непостижимый экзистенционализм ждёт своего адепта в «Логарифмах натуральных».
Но не надо отчаиваться и тем, кто не удовлетворился приведёнными примерами, для "сборщиков клубнички" – глава «Секансы и косекансы». В стареньком издании, попавшем в мои руки, даже циферки напечатаны таким удивительно сексапильным шрифтом с хвостиками, что само по себе лицезрение какого-нибудь 69 страшно эротично.
Всё, буквально всё есть в этом универсуме: комикс и ржачка в «Арктангенсах», милая душещипательная сентиментальная грусть в «Простых числах…».
Нет, что ни говорите брадисовы «Таблицы» - книга на века. Можно услышать мнения, что в век компьютеров и калькуляторных прошивок в окружающих нас гаджетах «Таблицы» устарели, что их можно выбросить на помойку. Не верю! Достаточно взять в руки эту вечноживую книгу, приглядеться и выпустить в полёт свою безграничную фантазию из того убогого нечищеного стойла, в котором мы её держим…
Дерзайте – прочтите, и вам будет дано ПОНИМАНИЕ МИРА.


 
Dimka Maslov ©   (2011-11-16 20:57) [32]


> Злостный оффтоп :)


Это ещё и не менее злостный боянъ :)


 
Игорь Шевченко ©   (2011-11-16 23:46) [33]


> А как Брадис вычислял свою таблицу? Подбором или по формуле?


На форуме спрашивал



Страницы: 1 вся ветка

Текущий архив: 2012.03.04;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.01 c
2-1321906467
lars
2011-11-22 00:14
2012.03.04
String Grid Подскажите, пожалуйста, как получить номера выбранных


15-1321206964
SQLEX
2011-11-13 21:56
2012.03.04
продолжение про java. Осталось чуть-чуть, не подскажите?


15-1321389003
Юрий
2011-11-16 00:30
2012.03.04
С днем рождения ! 16 ноября 2011 среда


2-1322202217
Dennis I. Komarov
2011-11-25 10:23
2012.03.04
D2010 string -> AnsiString


15-1321418542
Tin52
2011-11-16 08:42
2012.03.04
Печать из Word