|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.08.2008, 12:45 | #1 |
Участник клуба
Регистрация: 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. Как изменится код? А если взять восьмиугольник?
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
25.08.2008, 21:32 | #2 | |
Телепат с дипломом
Старожил
Регистрация: 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)
Проверь себя! Онлайн тестирование | Мой блог |
|
26.08.2008, 08:12 | #3 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Спасибо за ссылку! Я имел ввиду стандартные матфункции. А с этим модулем, честно, не сталкивался.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
26.08.2008, 21:59 | #4 | |
Телепат с дипломом
Старожил
Регистрация: 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)
Проверь себя! Онлайн тестирование | Мой блог |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с классами и объектами | 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 |