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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2008, 12:45   #1
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию Как заполнить форму 6-иугольными объектами

Тут как-то был вопрос- "Как сделать фон формы в виде шестиугольников?
Интересный вопрос.Давайте посмотрим что получится.Тем более, что он
напрямую связан с тригонометрией - то что почему-то не понравилось в
Мастерской...
Смотрим рисунок: Ris1.
Вставим шестиугольник в описующий квадрат и будем с помощью двух
вложенных циклов последовательно выводить на форму этот квадрат со
стороной = S.Из рис. видно, что первая координата - это точка А1 и она
смещена на -( S / 2) по оси Х и на (S / 4) по оси Y. Следующая координата вывода по оси А2 и смещение = (3 / 2 * S) - тоже без
вопросов. А вот с координатами в следующей итерации по Х (точки В1,
В2 и т.д.)посложней.Во-первых по Y В1 сместилась теперь в - (3 / 4 * S).
А вот смещение по Х = а придется вычислять. Видим треугольник, где
нам известны угол = 30 град ( сразу - в радианах это pi / 6) и катет b
= (3 / 4 * S).Далее математика : a / b = tg (pi / 6).Вот только в Delphi
функции tg нет, а есть только sin и cos. Тогда вспомним, что
a = C * sin (angle) b = C * cos (angle) тогда a / b = C * sin (angle)
/ C * cos (angle) или a / b = sin / cos.
Таким образом а = (3 / 4 * S) * (sin (pi / 6) ) / (cos(pi / 6));
Дальше остается использовать это в программе.Во вложении программа.
Можно посмотреть код.
Теперь вопрос - здесь шестиугольник расположен двумя гранями паралельно оси Y.А если повернуть на 90 градусов?
Ris2.
Как изменится код?
А если взять восьмиугольник?
Изображения
Тип файла: jpg Ris1.jpg (13.5 Кб, 157 просмотров)
Тип файла: bmp Ris2.bmp (8.0 Кб, 130 просмотров)
Вложения
Тип файла: rar Six.rar (7.1 Кб, 10 просмотров)
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 25.08.2008, 21:32   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Вот только в Delphi функции tg нет
http://www.delphibasics.ru/navMath.php
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 вне форума Ответить с цитированием
Старый 26.08.2008, 08:12   #3
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Спасибо за ссылку! Я имел ввиду стандартные матфункции. А с этим модулем, честно, не сталкивался.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 26.08.2008, 21:59   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Я имел ввиду стандартные матфункции
Это и есть стандартные функции, модуль Math, добавь его в Uses. Просто sin и cos объявлены в SysUtils кажется, а не в Math, вот и вся разница.
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 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с классами и объектами Shavminator Общие вопросы Delphi 7 18.12.2009 04:11
Взаимодействие ListView с рукописными объектами. Turbine Общие вопросы Delphi 1 15.08.2008 11:27
Взаимодействие ListView с другими объектами. Передача Turbine Компоненты Delphi 0 13.08.2008 22:40
Управление Программно созданными объектами dars73 Помощь студентам 14 19.11.2007 01:42
Как изменить стандартную форму на форму любой сложности QwErEn Общие вопросы Delphi 9 08.06.2007 11:44