![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() Цитата:
Код без рисунка не объяснить. В ближайшее время объясню. |
|
![]() |
![]() |
![]() |
#22 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Думаю не стоит, я и рисунок уже подготовил и писать начал, повтор получится. Я хочу объяснить саму основу - число пи, радианы, синус, косинус доступным языком, так чтобы понятно любому человеку стало. И самое главное - увидеть во всем этом практическую пользу, а не теория ради теории, как в школе учат. Вобщем научно-популярная статья будет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#23 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Итак, что же нужно для движения по окружности? Сначала определимся, что мы имеем. Мы имеем радиус (орбита планеты) и на этой орбите будем ее рисовать.
Если немного пораскинуть мозгами, можно догадаться что для анимации нужно менять не непосредственно координаты, как в случае с линейным движением, а угол. Для удобства восприятия я наложу картинку с солнцем и одной планетой на координатную плоскость. ![]() В центре солнце, на орбите планета в трех различных положениях. Отсчет углов начинается с оси Х и идет против часовой стрелки. Но т.к. на канве начало Y координат вверху, а не внизу как в математике, в программе угол будет прирастать по часовой стрелке, т.е. имеем зеркальное отображение, но это мы забегаем вперед, пока я буду объяснять как в математике. Итак, смотрим первое положение планеты – 0°. Она находится на оси Х. Смотрим третье положение на оси Y, угол 90°. С такими углами все очевидно, одна из координат равна нулю, вторая равна радиусу. Посмотрите на график и убедитесь, что это так. А как же быть с средним положением обозначенным буквой p? Тут все не так очевидно, и навскидку точные координаты не скажешь. Вот тут нам и нужна тригонометрия. Проведем перпендикуляры от точки p на оси, они показаны пунктирной линией. Они пересеклись с осями в точках x и y (они красным цветом). Образовались треугольники. Рассмотрим треугльник spx. Он прямоугольный, надеюсь что это значит вы знаете, иначе сначала почитайте где нибудь про это и потом возвращайтесь к уроку. Раз он прямоугольный, то к нему применимы все теоремы про катеты, гипотенузы и т.д. Его сторона sp является радиусом нашей окружности, а как мы помним, это расстояние от солнца до планеты. Также она является гипотенузой этого треугольника и обозначена буквой r (радиус). Угол между одним из катетов и гипотенузой обозначен буквой А. Таким образом для того чтобы узнать координаты планеты, нужно узнать катеты этого прямоугольника sx и px. Иначе говоря положения точек x и y на своих осях. Чтобы понять, смотрите график. Теорема гласит – синус угла A (альфа) это отношение противолежащего катета к гипотенузе. У нас это sin(a) = px / r преобразуем это и получим px = sin(a) * r сторону px можно представить просто как координату y, нам собственно она и нужна y = sin(a) * r То же самое с косинусом – отношением прилежащего катета к гипотенузе. cos(a) = sx / r sx = cos(a) * r x = cos(a) * r Радиус нам известен, так что осталось найти синус и косинус. В Дельфи есть соответствующие функции sin и cos. Но не спешите открывать проект, я еще не все рассказал. Так как радиус у нас не меняется, с увеличением катета px (движением планеты против часовой стрелки) будет увеличиваться и синус, ведь синус это отношение радиуса к этому катету. Таким образом синус угла A привязан к этотму катету, т.е. к координате y. С косинусом (и координатой x) в это время будет происходить противоположное, он будет уменьшаться, при 90° он станет равным нулю, синус - единице. При движении дальше косинус станет отрицательным, и будет нарастать, синус будет уменьшаться. Проследите мысленно движение точки дальше по орбите и подумайте как будут изменяться ее координаты. Также есть еще интересный момент. И синус и косинус всегда меньше либо равен единице, независимо от знака. Почему? Смотрите сами. Катет всегда меньше гипотенузы. Согласны? А мы его (катет) на нее (гипотенузу) делим, т.е. ни при каких обстоятельствах больше единицы они (синус и косинус) не будут. Подитожим, если нам надо найти x координату узнаем косинус, надо найти y узнаем синус.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 10.09.2008 в 21:23. |
![]() |
![]() |
![]() |
#24 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Идем дальше. Углы в тригонометрия принято обозначать в радианах. Функции Дельфи в качестве аргумента также хотят видеть значение угла в радианах. Так что, чтобы не переводить каждый раз из градусов, хотя это и возможно, и даже функция такая есть, мы будем угол считать в радианах, мы же хотим понять как все это работает, не так ли?
Понятие радиана неразрывно с числом Пи. Сначала узнаем что же это за число. Вот его определение с Википедии. Число πи — математическая константа, выражающая отношение длины окружности к длине её диаметра. Обозначается буквой греческого алфавита «пи». А вот поясняющая картинка оттуда же. ![]() Другими словами число πи означает сколько диаметров помещается в длине окружности. Теперь можно приступить к радиану. Его определение я дам своими словами. Радиан - это угол при к-ром длина дуги окружности равна радиусу. Другими словами сколько радиусов помещается в длине дуги. Когда-то встречал красивую и понятную картинку в сети, но не нашел, все корявые или много лишнего. Нарисовал сам, на глаз, примерно, может быть угол не совсем точно 1 рад, но для понимания сути это не важно. ![]() Теперь разберемся сколько радиан в полукруге и полной окружности. Сколько градусов я надеюсь вы знаете – 360°. А сколько же радиан? Вспомним число πи. И возьмем для начал полукруг т.е. 180°. Чтобы узнать сколько радиан в полукруге (т.е. сколько радиусов помещается в длине дуги) надо соответственно длину этой дуги поделить на радиус. длина дуги полукруга = длина окружности / 2 радиус = диаметр / 2 мы знаем что: πи = длина окружности / диаметр а найти нам надо: (длина окружности/2) / (диаметр/2) Поделив получим опять же число πи. 180° = Пи радиан ≈ 3,14 радиан 360° = 2Пи радиан ≈ 6,28 радиан В Дельфи число Пи есть, мы можем его использовать в расчетах если надо, обозначается оно так – pi. Для хранения угла в радианах понадобится переменная одного из вещественных типов (Real, Single, Double, Extended etc.).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 10.09.2008 в 14:25. |
![]() |
![]() |
![]() |
#25 |
Пользователь
Регистрация: 29.03.2007
Сообщений: 11
|
![]()
А как насчет законов Кеплера?
![]() |
![]() |
![]() |
![]() |
#26 | |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
Извините, что влез, маленькая поправочка
Цитата:
А так все очень понятно и красиво объяснено. To Селёзин - Кто такой Кеплер? Он что, твой родственник?
И не сомневайся даже ... отдых - кайф, работа - лажа!
Последний раз редактировалось DeKot; 10.09.2008 в 16:57. |
|
![]() |
![]() |
![]() |
#27 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Еще один астроном )
Для тех, кто в танке, внимательно читать первую страницу темы.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#28 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
Уважаемый mutabor, не расскажете, как Вы создаете анимационные рисунки (и просто рисунки) и как их вставляете в сообщение?
А то я в этом полный ноль. Можно в личку, а то немного не о теме.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
![]() |
![]() |
![]() |
#29 | ||
Пользователь
Регистрация: 29.03.2007
Сообщений: 11
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#30 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
Так ведь скорость вращения задается самими параметрами :
Vлинейная = 2 * pi * orbits / periods; Vугловая = 2 * pi / periods; Задача найти число, кратное скорости вращения каждой планеты.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Знакомство с одноклассниками | Alar | Свободное общение | 10 | 03.07.2008 22:20 |
Файловая система | student_63 | Win Api | 1 | 12.04.2008 20:29 |
Система координат | SunKnight | Общие вопросы Delphi | 2 | 05.02.2008 19:42 |