18 Temmuz 2020 Cumartesi

QuickBasic - 18: Grafik işlemleri-6

Yayınlama: 18 Temmuz 2020

PAINT

Kullanımı:
PAINT [STEP] (x,y)[,[dolgu] [,[çerçeverengi] [,arkaplan]]]
Belirtilen dolgu rengi veya deseni ile kapalı şekil içini boyar(doldurur)
Doldurma işlemi (x,y) koordinatından başlar. Şekil kapalı değilse taşıp ekranı doldurur.
STEP kullanıldığında son çizim konumu 0,0 kabul edilip göreceli koordinat uygulanır.
dolgu : Dolgu rengini belirten sayısal değer ya da deseni belirten karakter dizisi olmalıdır.
çerçeverengi : Dolgu yapılacak şeklin rengi (sınır çizgi rengi)
arkaplan : Sınırın sonlandırılması kontrol edilirken atlanacak "arka plan döşemesi dilimini" veren bir karakter dizisi değeri. Bitişik noktalar boya rengini gösterdiğinde resim sonlandırılır.
Arka plan döşemesi dilimi belirtmek, önceden boyanmış bir alanı boyamanıza izin verir.
Arka plan belirtilmediğinde varsayılan değer CHR$(0) olur.

Desen : 8 bit genişliğinde ve 64 bayta kadar olan bir dolgu deseninin tasarımıdır.

Desen dizesinde, her bayt, noktaları koyarken x ekseni boyunca 8 biti maskeler.
Bu kutucuk maskesini oluşturmak için sözdizimi şöyledir:
PAINT (x,y), CHR$(arg1)+CHR$(arg2)+...+CHR$(argn)
CHR$ değişkenleri, desenin x ekseni boyunca ikili biçimde temsil edilen 0 ile 255 arasındaki sayılardır. Bu CHR$ öğelerinden 64'e kadar olabilir; her biri atanan karakterden değil, o karakter için kodun bit düzenlemesinden bir görüntü oluşturur.
Örneğin, ondalık sayı 85, ikili sayı olarak 01010101'dir; CHR$(85) tarafından oluşturulan siyah beyaz bir ekrandaki grafik görüntü çizgisi, 1 sayılı noktalar beyaz ve 0 numaralı noktalar siyah olan 8 piksel çizgisidir.
Bu durumda ASCII karakteri CHR$(85) in karşılığı olan U gösterilmez.

Örnek 1:
SCREEN 12
WINDOW (0, 0)-(500, 500)
FOR n = 200 TO 5 STEP -5
    r = r + 1
    IF r = 16 THEN r = 0
    CIRCLE (250, 250), n, r
    PAINT STEP(0, 0), r, r
NEXT

Örnek 2:
'Code: QB64.org
DIM S(1 TO 8) AS STRING
SCREEN 12

'kırmızı tuğlalı duvar deseni
S(1) = CHR$(0) + CHR$(0) + CHR$(&HFE) + CHR$(&HFE)
S(2) = S(1)
S(3) = S(1)
S(4) = CHR$(0) + CHR$(0) + CHR$(0) + CHR$(0)
S(5) = CHR$(0) + CHR$(0) + CHR$(&HEF) + CHR$(&HEF)
S(6) = S(5)
S(7) = S(5)
S(8) = S(4)
Desen$ = S(1) + S(2) + S(3) + S(4) + S(5) + S(6) + S(7) + S(8)

LINE (60, 120)-(580, 330), 14, B 'sarı çizgi ile dikdörtgen
PAINT (320, 240), Desen$, 14 'tuğla deseni ile doldur
Örnek 3:
'©2020. Mesut Akcan
DEFINT A-Z
DIM satir AS STRING
DIM desen AS STRING

'desen satırları
DATA "..1111.."
DATA ".111111."
DATA ".11..11."
DATA ".11..11."
DATA "..1111.."
DATA "...11..."
DATA "111..111"
DATA "1..11..1"
DATA "1..11..1"
DATA ".11..11."
DATA "...11..."
DATA "........"
DATA "---"

DO
    READ satir 'ikili sayı
    IF satir = "---" THEN EXIT DO
    s = 0: p = 0
    FOR i = 8 TO 1 STEP -1
        'ikili sayıyı onlu sayıya dönüştür
        s = s + VAL(MID$(satir, i, 1)) * 2 ^ p 'onlu sayı
        p = p + 1 'üssü
    NEXT
    desen = desen + CHR$(s)
LOOP

SCREEN 2
WINDOW (0, 0)-(200, 200)
CIRCLE (100, 100), 55, , , , .5
PAINT (100, 100), desen

Örnek 4:

'©2020 Mesut Akcan
DEFINT A-Z
DIM desen AS STRING

' desen taslağı (tuğla deseni)
' ...1.... = 16
' ...1....
' ...1....
' ...1....
' ...1....
' ...1....
' 11111111 = 255
' .......1 = 1
' .......1
' .......1
' .......1
' .......1
' .......1
' 11111111 = 255

' desen taslağı kod karşılığı
desen = CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16) + CHR$(16)
desen = desen + CHR$(255)
desen = desen + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1) + CHR$(1)
desen = desen + CHR$(255)

SCREEN 11
WINDOW (-100, -100)-(100, 100)
DRAW "TA60 bL180"
FOR n = 0 TO 300 STEP 60
    DRAW "TA" + STR$(n) + "R180" ' Altıgen çiz
NEXT
PAINT (0, 0), desen

WIDTH

Kullanımı:
WIDTH [sütun][satır]
Ekranın yazı alanın sütun ve satır sayısını değiştirir.
SCREEN 0 için: sütun; 80 veya 40; satır; 25, 43 veya 50 olabilir.
SCREEN 11 ve 12 için: sütun; 80; satır; 30 veya 60 olabilir.

Örnek 1:
SCREEN 12
WIDTH 80, 60
FOR i = 1 TO 4720
    COLOR INT(RND * 15 + 1)
    'COLOR i MOD 10 + 5
    PRINT LTRIM$(STR$(i MOD 10));
NEXT

Örnek 2:
DECLARE SUB yaz (sutun%, satir%)
yaz 80, 25
yaz 80, 43
yaz 80, 50
yaz 40, 25
yaz 40, 43
yaz 40, 50
SCREEN 12
yaz 80, 30
yaz 80, 60

DEFINT A-Z
SUB yaz (sutun, satir)
    STATIC r
    WIDTH sutun, satir
    r = r + 1
    COLOR r + 2
    FOR n = 1 TO satir
        PRINT "Satır:"; n; " Merhaba Dünya !"
    NEXT
    SLEEP
END SUB



Önceki Bölüm: 17: Grafik işlemleri-5 Sonraki Bölüm: 19: Grafik işlemleri-7

Hiç yorum yok:

Yorum Gönder