Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Форум MMB » Всё о программе Multimedia Builder » ГОТОВЫЕ ОТВЕТЫ ПО MMB » Тригонометрические функции (Простой способ)
Тригонометрические функции
basmeДата: Среда, 23 Января 2008, 15:42 | Сообщение # 1
MMB Club
Группа: Проверенные
Сообщений: 358
Репутация: 5
Награды: 2
Статус: Offline
Мною был найден достаточно простой способ вычислить синус, косинус, тангенс и прочие функции с помощью ММВ, не прибегая к плагинам.
Для этого в проекте должен быть Bitmap, представляющий из себя тонкую длинную линию наименьшей толщины, самой маленькой, какая возможно. Длина остаётся произвольной.
Для вычисления даём такой скрипт (u - угол, для которого вычисляется функция, в градусах):

c=ObjectWidth(Bitmap)
RotateImageTo("Bitmap","u")
a=ObjectHeight(Bitmap)
b=ObjectWidth(Bitmap)

Пояснение - любой объект, в том числе и графический, окружает рамка, ограничивающая его. Пока объект представляет из себя горизонтальную линию, по сути, тоже прямоугольник, рамка совпадает с ним. Но когда объект повёрнут, рамка по прежнему остаётся прямоугольной, но не поворачивается, а изменяется в размерах. Таким образом, мы получает прямоугольный треугольник, в котором присутствует угол поворота, высота - противолежащий катет, длина - прилежащий катет, а длина линии - первоначальная длина объекта - гипотенуза. То есть:
sin=a/c
cos=b/c
tg=a/b=sin/cos
ctg=b/a=cos/sin=1/tg
Аналогично можно вычислять и секонс с косеконсом, если нужно.
Пример прикреплён.

Прикрепления: trigon.mbd(10.2 Kb)
 
as-masterДата: Среда, 23 Января 2008, 17:37 | Сообщение # 2
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Мною, аэс-мастером, было проведено экспериментальное испытание предложенного
basme способа вычисления тригонометрических функций smile

В результате испытаний были выявлены недостатки и составлен нижеследующий отчет:

1. В целом способ вычисления соответствует заявленному и дает близкие результаты.
2. Погрешность вычислений имеется, и зависит от соотношения длины и высоты битмапа
(чем больше длина при высоте в 1 пиксел, тем результат будет точнее).
3. Погрешность вычислений не может быть сведена к нулю ввиду невозможности создать
битмап длиной, стремящейся к бесконечности (а именно при этих условиях точность
будет максимальной).
4. В проекте нужно предусмотреть сбрасывание поворота битмапа после каждого вычисления
на начальное горизонтальное положение.
5. В целом НЕ РЕКОМЕНДОВАТЬ такой способ для практического применения ввиду его
излишней экзотичности.
6. Гражданину basme объявить благодарность за творческий подход и умение
нестандартно мыслить и выдвинуть перед администрацией сайта поклонников ММВ
его кандидатуру на включение в члены клуба ММВ.

Прикрепления: 0059348.mbd(3.2 Kb)


Да пребудет с вами ММВ!
 
YURIYДата: Среда, 23 Января 2008, 17:50 | Сообщение # 3
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (as-master)
выдвинуть перед администрацией сайта поклонников ММВего кандидатуру на включение в члены клуба ММВ.

Я давно мысленно был "за". Потому мой голос в пользу basme.



Вечная память Андрею Сергееву!
 
as-masterДата: Среда, 23 Января 2008, 17:55 | Сообщение # 4
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Сорри, я сразу не заметил твой проект прикрепленный и сделал свой.
А потому претензия по поводу возвращения битмапа в первоначальное положение снимаеццо.
Зато ставиццо вопрос: мне думаеццо, проект надо опубликоать на сайте ММВ, хотя бы для
закрепления приоритета твоего авторства в нестандартном решении задачи :)


Да пребудет с вами ММВ!
 
toizyДата: Среда, 23 Января 2008, 20:25 | Сообщение # 5
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
basme молодец

Жизнь оказалась не такой уж и забавной, как поначалу...
 
as-masterДата: Среда, 23 Января 2008, 21:32 | Сообщение # 6
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Решением Совета Старейшин клуба ММВ любитель ММВ basme
становится уже вовсе не любителем, а полноправным членом клуба ММВ!

Поздравляю!

Подробности - в л.с.





Да пребудет с вами ММВ!
 
Alex3AДата: Среда, 23 Января 2008, 22:20 | Сообщение # 7
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Молдодец, очень оригинальное решение!
Где то на форуме валяется мой плагин с кучей фукций(из юнита math), не все мне известны, посмотрел бы кто и просветил.
 
Форум MMB » Всё о программе Multimedia Builder » ГОТОВЫЕ ОТВЕТЫ ПО MMB » Тригонометрические функции (Простой способ)
  • Страница 1 из 1
  • 1
Поиск: