![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 142
|
![]()
А если так?
Код:
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 07.11.2011
Сообщений: 178
|
![]()
Признавайтесь, прогуливали векторную алгебру/геометрию? У вас картинка 9-ти конечной звезды, причем со сглаживанием, делать из неё регион вашим способом - полное извращение.
У вас 9-конечная звезда, это считай три одинаковых равносторонних треугольника, повернутых относительно центральной точки (G). Углы равноудаленны друг от друга и условного центра, угол между вершинами всех треугольников 360/9=40. Длинна стороны треугольника судя по картинке 700 пикселей. Достаточно рассчитать медиану/высоту, найти среднюю точку любого треугольника (ось вращения) см изображение: ![]() Собственно этих данных с лихвой хватит чтобы обойтись без вашей картинки: Код:
Последний раз редактировалось DIONISKA; 28.04.2023 в 22:12. |
![]() |
![]() |
![]() |
#13 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Проблема в том, что есть не 9-ти конечная звезда, а картинка. А на картинке изображение. Есть у вас код для распознавания на изображении 9-ти конечной звезды или любой другой сложной фигуры.
P.S. Кажется вы тоже один урок прогуляли Код:
|
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 07.11.2011
Сообщений: 178
|
![]()
офтоп: Это были лихие студенческие годы, ну а если серьезно, то при идентичном результате не имеет значения как выглядит формула, тем-более там можно допиливать бесконечно, н-р там где должно быть "radius" используется "R", но это уже не так интересно
Что до картинок и обрезания формы под неё, то с незапамятных времен существуют Layered-окна, которые тут уже упоминались, они даже умеют работать с альфаканалом, у того-же 32-х битного TBitmap, а это считай окна с 255 степенями прозрачности, отсутствием характерной "лесенки", мерцания и пр. Стоит ли городить при наличии такого инструмента трассировщик изображения чтобы получить худший результат? |
![]() |
![]() |
![]() |
#15 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Layered окна появились только на XP. И то до SP1 они были не лучше регионов и генерировали белый шум при перетаскивании.
|
![]() |
![]() |
![]() |
#16 |
Форумчанин
Регистрация: 07.11.2011
Сообщений: 178
|
![]()
ХР без SP1 была ужасной, кроме проблем с gdi/gdi+, отвала драйверов, множества дыр в безопасности, жора ресурсов у неё было множество других проблем, но то дела давно минувших дней, на дворе 2023-й и я давно не видел хр ниже SP2, не говоря уже о 95-й, 98-й и тп, так что сомневаюсь что ТС пишет под какую-то старую платформу. Тем-более если мне не изменяет память, то D7 вышла примерно в том-же году, что и SP1 для XP.
Всё-же на мой взгляд Layered окна предпочтительнее для украшательств подобного рода, другой вопрос захочет ли ТС с ними иметь дело или продолжит возиться с регионами. |
![]() |
![]() |
![]() |
#17 | ||||
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() Цитата:
Цитата:
Цитата:
Но я думаю он скажет спасибо за код. Цитата:
|
||||
![]() |
![]() |
![]() |
#18 |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 142
|
![]()
Благодарю за развернутый ответ. Если честно - в сторону тригономертии не смотрел. Наизусть без справочника такими формулами не владею. А о картинке - я её делал посредством манипуляций с линией 700px (вращение по 40 градусов + сдвиг до воссоединения с другими линиями). Тут фишка в следующем. Почему я упёрся в регионы: по замыслу предстоит работа с фигурами посложнее звезды, а именно с её фрагментами (от пересечений треугольников внутри). Решение позволяющее создать звезду по картинке путём набора её из прямоугольных пиксельных строк цвета
Код:
Итоговый вопрос. Что неверно в коде? Код:
|
![]() |
![]() |
![]() |
#19 | |||
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() Цитата:
Цитата:
Цитата:
4) 4 переменных X1, Y1, X2 и Y2 ни к чему. Их значения вполне можно подставить сразу в аргументы функции CreateRectRgn тем более, что значения X1 и Y2 и так всегда равны X и Y. Лучше сразу вот так Код:
Последний раз редактировалось macomics; 30.04.2023 в 22:27. |
|||
![]() |
![]() |
![]() |
#20 | |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 142
|
![]()
2 macomics,
Цитата:
RgnDest:=0 - это инициализация переменной и если она равна 0, то в неё нужно записать первый регион, а все последующие можно писать в Rgn2. Почему? Код:
Код:
Другими словами проверка If (RgnDest=0) Then символически обозначает проверку условия был ли записан первый регион, к которому потом будет плюсоваться последующие.
Программа для работы с МАК-картами (3 колоды)
Программа по мотивам книги Сары Найт "Магический пофигизм" Мой ЖЖ Последний раз редактировалось hexor_boo; 01.05.2023 в 20:51. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использование SDK (C++) в Delphi | dalx | Фриланс | 2 | 28.04.2022 00:04 |
Использование Delphi DLL в PHP коде | Adult_Master | Общие вопросы Delphi | 5 | 27.10.2015 18:17 |
Использование ЭЦП в Delphi | tarakan1983 | Общие вопросы Delphi | 3 | 30.03.2015 21:39 |
Использование библиотек в Delphi | Konstantin_V | Софт | 31 | 22.02.2010 21:59 |
HRGN сохранение-загрузка? | Comer_Jus | Общие вопросы Delphi | 5 | 21.05.2008 20:12 |