Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.004 c
4-1254841791
intlex
2009-10-06 19:09
2012.03.04
как определить владельца мьютекса (mutex owner)


15-1321291140
Омлет
2011-11-14 21:19
2012.03.04
«Начинающим» отпала


15-1320602490
Vladimir12
2011-11-06 21:01
2012.03.04
Глюки в XE2 Update2


15-1321293166
oxffff
2011-11-14 21:52
2012.03.04
Отправка посылки из Москвы


15-1320987591
Perevamon
2011-11-11 08:59
2012.03.04
Почему запрос выводит лишние строки?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский