Страница: 1 |
Страница: 1 |
Вопрос: Многоугольник с заливкой и шкала
Добавлено: 18.01.07 23:19
Автор вопроса: Tur | ICQ: 201446364
Вдруг возникают трудности там где их меньше всего ждешь.
На пикче требуется нарисовать многоугольник с заливкой
ReDim p(1 To 4) As POINTAPI
p(1).X = 20: p(1).Y = 500
p(2).X = 50: p(2).Y = 200
p(3).X = 150: p(3).Y = 300
p(4).X = 100: p(4).Y = 600
Pic.Scale (1, 1)-(256, 1000)
Polygon Pic.hdc, p(1), 4
Pic.Refresh
Изменение шкалы Pic.Scale (1, 1)-(256, 3000) никак не отражается на рисунке. Почему?
Почему Polygon не реагирует на изменение шкалы?
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 19.01.07 05:33
Возможно потому, что .Scale влияет только на VBшные методы вывода примитивов. WinAPI о твипах ничего не знает.
Номер ответа: 2
Автор ответа:
Tur
ICQ: 201446364
Вопросов: 22
Ответов: 72
Профиль | | #2
Добавлено: 19.01.07 09:51
И как же в таком случае можно нарисовать залитый многоугольник средствами vb? А мне еще и быстро надо.
Номер ответа: 3
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #3
Добавлено: 19.01.07 20:21
Пересчитай то что тебе нужно нарисовать в пиксели и юзай АПИ
Номер ответа: 4
Автор ответа:
Tur
ICQ: 201446364
Вопросов: 22
Ответов: 72
Профиль | | #4
Добавлено: 20.01.07 22:49
Вот мне объяснили:
WinAPI ф-ции работают в пиксельной сетке и другие их не колышут ни коим образом. Просто переводи в пикселы:
p(1).X = pic.ScaleX(20, pic.ScaleMode, vbPixels)
p(1).Y = pic.ScaleY(500, pic.ScaleMode, vbPixels)
' И т.п.