![]() |
|
Модераторы: Akina |
![]()
|
|
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Здравствуйте!
Во время моей скромной программистской деятельности возникла острая нужда нарисовать залитые полигоны на форме. Все бы ничего, но мне надо это сделать именно методами формы, без API! Как это сделать? Подозреваю, что надо использовать Line... или нет? Буду искренне рад ответу - надо очень.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Enjoy it! |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Сорри, я чего-то не понял - этот код выдает НЕзалитые красный квадрат и синий круг.
Мне нужны закрашенные полигоны, причем "нестандартные" - т.е. не только прямоугольник и круг. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Black_Star |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 9.9.2003 Где: Minsk Репутация: 4 Всего: 4 |
Эхм... тогда только АПИ
А чем АПИшки тебя так пугают? |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Там букву F добавь и будут залитые. А вот с радиусом ...Хм.. тут надо подумать. Но лучше помоему API |
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
Полностью согласен, API проще всего. И быстрее чем свой алгоритм ваять.
Цитата "Советы тем, кто программирует на VB & VBA" и тамже пример.
|
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
'Рендеринг одноцветного треугольника
[CODE] Sub DrawTriangle(DrawnedForm As Form, Tri As Triangle) On Error Resume Next Set FM = DrawnedForm Dim C As Double, Tmp, D As POINTAPI 'FM.Line (Tri.A.x, Tri.A.y)-(Tri.B.x, Tri.B.y) 'FM.Line -(Tri.C.x, Tri.C.y) 'FM.Line -(Tri.A.x, Tri.A.y) If Tri.A.y > Tri.B.y Then D = Tri.A: Tri.A = Tri.B: Tri.B = D 'сортировка по y If Tri.A.y > Tri.C.y Then D = Tri.A: Tri.A = Tri.C: Tri.C = D If Tri.B.y > Tri.C.y Then D = Tri.B: Tri.B = Tri.C: Tri.C = D For i = Tri.A.y To Tri.C.y X1 = Tri.A.x + (i - Tri.A.y) * (Tri.C.x - Tri.A.x) / (Tri.C.y - Tri.A.y) If i < Tri.B.y Then X2 = Tri.A.x + (i - Tri.A.y) * (Tri.B.x - Tri.A.x) / (Tri.B.y - Tri.A.y) Else X2 = Tri.B.x + (i - Tri.B.y) * (Tri.C.x - Tri.B.x) / (Tri.C.y - Tri.B.y) If X1 > X2 Then Tmp = X1: X1 = X2: X2 = Tmp End If FM.Line (X1, i)-(X2, i) Next End Sub |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
[CODE]
Public Type POINTAPI x As Long y As Long z As Long End Type Public Type Triangle A As POINTAPI B As POINTAPI C As POINTAPI End Type |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
ОГО!!!
Сейчас будем разбираться. Спасибо. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |