Графике
в
стиле
VB
Александр СОЛОВЕЙ
В прошлый раз мы начали рассматривать эффекты над изображениями в Visual Basic 6.0. Теперь
мы рассмотрим новые, не очень сложные эффекты.
О кончание, начало см. в М К, № 3 (330)
Эффект №9. Втражение
П
ерекопируем попиксельно первое
изображение во второе, отзерка-
лив цвета слева направо:
D im X % ,
Y%,
x S iz e % , y S iz e S ,
C o lo r s
P r i v a t e S u b C m d _ C lic k ( )
P ic l. S c a le M o d e = 3
P ic 2 . S c a le M o d e = 3
x S iz e =
I n t ( S e a le x ( P i c l. P ic t u r e . W id t h ,
v b H im e t r ic , v b P i x e l s ) )
y S iz e -
I n t ( S c a l e Y ( P i c l . P i c t u r e . H e i g h t ,
v b H im e t r ic , v b P i x e l s ) )
P ic 2 . W id t h = S c a le X ( x S iz e , v b P i x e l s ,
v b T w ip s )
P ic 2 . H e ig h t = S c a le Y ( y S iz e , v b P i x e l s ,
v b T w ip s ) x S iz e =
P i c 2 . C l s
I n t (S c a l e x (P i c l . P i c t u r e . W id t h ,
v b H im e t r ic , v b P i x e l s ) )
y S iz e =
I n t ( S c a l e Y ( P i c l . P i c t u r e . H e i g h t , v b H i-
m e t r i c , v b P i x e l s ) )
F o r X = 0 T o x S iz e
F o r Y = 0 T o y S iz e
C o lo r = P i c l . P o i n t ( x S i z e - X , Y )
P i c 2 . P S e t (X , Y ) , C o lo r
N e x t Y
N e x t X
E n d S u b
Чтобы изображение отзеркалилось снизу
вверх, достаточно поменять строку определе-
ния цвета на:
C o l o r = P i c l . P o i n t (X , y S iz e - Y )
Эффект №10. Повороты
Как ни странно, для поворота на 180° дос-
тоточно изменить все ту же строку:
C o lo r = P i c l . P o in t ( x S iz e - X , y S iz e -Y )
Весь «секрет» в том, что двойное отзер-
каливание и поворот на 180° — это одно и
то же.
Поворот на 90° будет посложнее: во-пер-
вых, понадобится смена координат X на Y и
наоборот; во-вторых, размеры рисун-
ка будут уже не Д лина х Высота, а Вы-
с о т а х Длина. Все это нужно предусмот-
реть:
D im X % , Y5s, x S iz e % , y S iz e S , C o lo r s
P r i v a t e S u b C m d _ C lic k ( )
P ic l. S c a le M o d e = 3
P ic 2 . S c a le M o d e = 3
x S iz e =
I n t ( S c a l e x ( P i c l . P i c t u r e . W i d t h ,
v b H im e t r ic , v b P i x e l s ) )
y S iz e =
I n t (S c a l e Y ( P i c l . P i c t u r e . H e i g h t ,
v b H im e t r ic , v b P i x e l s ) )
(эффект № 9)
P ic 2 . H e ig h t = S c a le Y ( x S iz e , v b P i x e l s , v b T w ip s )
P i c 2 . W id t h = S c a le x ( y S iz e , v b P i x e l s , v b T w ip s )
P i c 2 . C ls
F o r X = 0 T o y S iz e
F o r Y = 0 T o x S iz e
C o lo r = P i c l . P o i n t ( Y , y S iz e - X)
P i c 2 . P S e t (X , Y ) , C o lo r
N e x t Y
N e x t X
E n d S u b
Еще раз рекомендую обратить вни-
мание на то, какие координаты поме-
нялись местами.
Поворот но 270° осуществляется по-
добным образом, только строка, отве-
чающая за подмену цвета, будет выгля-
деть так:
C o lo r = P i c l . P o i n t ( x S i z e - Y , X )
Рисунок (эффект №11)
Н о м п о н а д о б я тся к о н с та н та zoo m и з а р а -
н е е оп р е д е л е н н ы й р а з м е р б у д ущ е й картинки:
D im X % , Y%, x S iz e % , y S iz e S , C o lo r s
C o n s t Zoom = 0 .6
P r i v a t e S u b Cmd C l i c k ()
P ic l. S c a le M o d e = 3
P i c 2 . S c a le M o d e = 3
x S iz e = Zoom *
I n t (S c a l e x (P i c l . P i c t u r e . W id t h ,
v b H im e t r ic , v b P i x e l s ) )
y S iz e = Zoom *
I n t ( S c a l e Y ( P i c l . P i c t u r e . H e i g h t , v b H i-
m e t r i c , v b P i x e l s ) )
P ic 2 . W id t h = S c a le X ( x S iz e , v b P i x e l s ,
v b T w ip s )
- i P i c 2 - H e i g h t = S c a le Y ( y S iz e , v b P i x e l s ,
v b T w ip s )
P i c 2 . C ls
F o r X = 0 To x S iz e
F o r Y = 0 T o y S iz e
C o lo r = P i c l . P o i n t (1 / Zoom * X , 1 / Zoom
* Y )
P i c 2 . P S e t (X , Y ) , C o lo r
N e x t Y
N e x t X
E n d S u b
Д у м а ю , н е с л о ж н о д о г а д а т ь с я , ч то е с л и
в ы р а ж е н и е l/ z o o m в л ю б о й и з к о о р -
д и н а т б у д е т и зъ я то , р а с т я ж е н и е б у -
д е т п р о и с х о д и т ь т о л ь к о в о д н у с т о -
р о н у , е с л и ж е д о б а в л е н а б у д е т в т о -
р а я к о н с т а н т а — о н о б у д е т н е р а в -
н о м е р н ы м .
Эффект № 12. П ш ш ш щ т
Д л я р е а л и з а ц и и п и к с е л и з а ц и и мы
в в е д е м
ко н ста н ту пиксел изации
( p x l)
и д в е п е р е м е н н ы е , к о т о р ы е н а м п о -
н а д о б я т с я для о т р и с о в к и « к в а д р а т и -
ков». В и т о ге д о л ж н о п о л у ч и ть ся н е -
ч то в р о д е :
№ 4/331 24января-31 января 2005
предыдущая страница 37 Мой Компьютер 2005 04 читать онлайн следующая страница 39 Мой Компьютер 2005 04 читать онлайн Домой Выключить/включить текст