Недавно добавленные исходники

•  TDictionary Custom Sort  3 225

•  Fast Watermark Sources  2 990

•  3D Designer  4 750

•  Sik Screen Capture  3 259

•  Patch Maker  3 467

•  Айболит (remote control)  3 527

•  ListBox Drag & Drop  2 903

•  Доска для игры Реверси  80 766

•  Графические эффекты  3 843

•  Рисование по маске  3 171

•  Перетаскивание изображений  2 544

•  Canvas Drawing  2 672

•  Рисование Луны  2 500

•  Поворот изображения  2 091

•  Рисование стержней  2 119

•  Paint on Shape  1 524

•  Генератор кроссвордов  2 182

•  Головоломка Paletto  1 730

•  Теорема Монжа об окружностях  2 158

•  Пазл Numbrix  1 649

 

 

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Ссылки и Баннеры ...

 

Delphi Sources

Delphi Sources

 




 

ИСХОДНИК ПРОГРАММЫ

 

. : Hexagon Boards : .

 

Delphi - Рисование шестиугольных узоров для использования в качестве досок для игр или головоломок

Исходник программы, показывающей пример рисования шестиугольных узоров для использования в качестве досок для игр или головоломок, используя обычные шестиугольные плитки.

Это доска в форме шестиугольника, состоящая из 19 плиток шестиугольной формы, пронумерованных от 1 до 19. Цель состоит в том, чтобы расположить их в «волшебном» шестиугольнике, в котором значения в каждом горизонтальном и диагональном ряду (всего 15) в сумме равны 38.

Особенности программы

Масштабирование отдельных шестиугольных плиток с заданным размером и ориентацией. Процедура MakeHexagon создает тип TPolygon как массив из 6 точек, представляющих углы шестиугольника с заданной центральной точкой, радиусом и углом одной вершины от горизонтали. Остальные 5 углов увеличены на 60 градусов по сравнению с предыдущим углом.

Рисование плиток в соответствующих позициях. Для доски с длинным горизонтальным рядом количество рядов такое же, как и количество плиток в самом длинном ряду. Мы будем шагать по одной длине радиуса за раз, и для каждого шага позиции вверх и вниз на радиус, уменьшенный на величину перекрытия со следующей строкой [sin (30 градусов) = 0,866].

Для рисования версии доски, повернутой на 30 градусов (чтобы самая длинная диагональ стала самой длинной колонкой), необходимо повернуть каждую отдельную шестиугольную плитку вперед (или назад) на 30 градусов и поменять местами роли X, Y в алгоритме рисования из предыдущего, поэтому что длинный вертикальный столбец рисуется слева и справа, причем отдельные плитки в каждом столбце смещены по вертикали на один радиус плитки, а горизонтальное смещение составляет 0,866 радиуса.

Диаграмма «подсказки головоломки» отображает значения решения для одного из решений в 6 внешних углах доски. Локации были найдены во время создания доски путем временного присвоения последовательных букв по мере создания плиток. Буквы в 6 углах были затем заменены значениями решения по мере отображения платы, а другие буквы были заменены пробелами.

При добавлении чисел или других текстовых символов в плитки размер шрифта можно настроить в соответствии с размером плитки, задав свойство Canvas.Font.Height TImage. Я установил для него значение - Radius в этой программе, сделав высоту символа 1/2 диаметра плитки. Символы можно центрировать, вычитая половину неиспользованной высоты (и ширины) из координат центра плитки. Методы Canvas.TextWidth и Canvas, TextHeight могут возвращать данные значения.

Просмотры: 1 024
Дата: 01.07.2021, Автор: Gary Darby
Скачивания: 10
Написать сообщение:

 

Скачать (28 Кб)     Регистрация >>

 

© 2004-2024 "DS"

Соглашение пользователя / Реклама / Карта сайта             Created by BrokenByte Software