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

•  3D Designer  626

•  Sik Screen Capture  442

•  Patch Maker  408

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

•  ListBox Drag & Drop  364

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

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

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

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

•  Canvas Drawing  391

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

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

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

•  Paint on Shape  148

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

•  Головоломка Paletto  184

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

•  Пазл Numbrix  147

•  Заборы и коммивояжеры  245

•  Игра HIP  170

 

 

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

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

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

 

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 могут возвращать данные значения.

Просмотры: 411
Дата: 01.07.2021, Автор: Gary Darby
Написать сообщение:
 

 

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

 

© 2004-2021 "DS"

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