|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.10.2022, 13:12 | #21 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
|
11.10.2022, 13:19 | #22 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
А для функции FloodFill координаты вычисляются случайно не так ли?
Код:
|
11.10.2022, 13:22 | #23 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Для этой функции надо указать точку внутри закрашиваемой области. А последним параметром надо указать цвет пера, которым нарисован контур. Координаты точки должны быть тоже относительно левого верхнего угла окна. Область будет закрашена цветом или паттерном текущей кисти.
Последний раз редактировалось macomics; 11.10.2022 в 13:26. |
11.10.2022, 13:55 | #24 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Код:
|
11.10.2022, 13:59 | #25 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Тогда попробуйте по координатам (rcArc.left + pCenter.x + x0 + x) / 3, (rcArc.top + pCenter.y + y0 + y) / 3 нарисовать Rectangle размером 3 на 3 пикселя, пускай даже не с центром в этой точке. Чтобы увидеть куда вы ткнули. А вы контур красным цветом рисовали?
Если что, то для треугольника вот такая формула вычислит координаты центра: cen.x = (Ax + Bx + Cx) / 3; cen.y = (Ay + By + Cy) / 3; Поэтому по трем точкам так можно найти некоторую внутреннюю точку, но это справедливо для дуги не превышающей 50%. При 50% - это формула вырождается в прямую и дает точку в центре эллипса. А при дуге длиннее 50% эта точка будет вне закрашиваемой области. Последний раз редактировалось macomics; 11.10.2022 в 14:12. |
12.10.2022, 04:06 | #26 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Цитата:
Код:
Может быть ещё и потому, что контур красный, но не с трёх сторон, одна сторона закрашена синим т.к. это граница третьего сектора, которая легла на границу первого, короче говоря лучше покажу. Окно1.jpg Странно, но прямоугольник растёт в обратном направлении не вправо вниз а влево вверх. Последний раз редактировалось apofioz; 12.10.2022 в 06:11. |
|
12.10.2022, 04:10 | #27 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Цитата:
Если воспользоваться формулами приведёнными здесь, то точка попадает в центр треугольника, но эффекта нет т.е. функция FloodFill всё так же халтурит. Последний раз редактировалось apofioz; 12.10.2022 в 06:10. |
|
12.10.2022, 08:50 | #28 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Цитата:
FloodFill не работает потому, что вы не создали Brush. На это указывает отсутствие заливки у прямоугольника. Используйте CreateSolidBrush или CreatePatternBrush |
|
12.10.2022, 09:35 | #29 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Цитата:
Сейчас создал, теперь закрашивается всё окно, как вы понимаете это не тот результат, которого я ожидал. |
|
12.10.2022, 09:37 | #30 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
А что если вместо той простыни в секции WM_PAINT, которая есть на данный момент, попробовать сделать что-то такое:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нарисовать круговую диаграмму | Proskurina | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 08.11.2012 08:50 |
Нарисовать столбиковую диаграмму по результатам сдачи экзамена по матану | Proskurina | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 07.11.2012 23:14 |
Нарисовать столбиковую диаграмму | Proskurina | Помощь студентам | 2 | 24.10.2012 13:40 |
Нарисовать диаграмму сравнения методов | Gebbellz | Помощь студентам | 0 | 15.12.2010 17:52 |
нарисовать круговую диаграмму в паскале | vbchristy46 | Помощь студентам | 2 | 28.06.2010 20:33 |