Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias çokgen dialog -m çokgen çokgen
dialog çokgen {
title "Çokgen"dR
size -1 -1 302 226
option dbu
icon 2, 6 11 185 209
text "Kaç gen olsun?", 3, 203 22 53 12
edit "", 4, 242 21 16 10, limit 3
check "Prizma", 6, 201 63 55 13, left
box "Menü", 1, 198 11 99 210
text "Çevrel çemberin yarıçapı:", 5, 202 41 63 10
edit "", 7, 266 40 29 10, limit 3
text "İç rengi:", 8, 200 100 36 8
combo 9, 236 100 60 95, sort size drop
text "Arkaplan rengi:", 10, 200 111 36 8
combo 11, 236 110 60 96, sort size drop
check "İçini boya", 12, 201 73 55 13, left
text "Çizim rengi:", 13, 200 91 36 8
combo 14, 236 91 60 96, sort size drop
button "Resmi kaydet", 15, 230 203 37 12
box "Sonuçlar", 16, 200 139 95 50
text "Oluşturma süresi:", 17, 205 148 46 8
edit "", 18, 255 147 31 10, read
text "Bir kenarın açısı:", 19, 205 159 44 8
edit "", 20, 255 158 31 10, read
text "Çözünürlük:", 21, 205 172 34 8
edit "", 22, 239 171 46 10, read
text "Kenar kalınlığı:", 23, 203 53 63 10
edit "", 24, 266 53 28 10, limit 3
button "Oluştur", 25, 230 124 37 12
text "Kayıt klasörü:", 26, 201 193 33 8
edit "", 27, 235 192 48 10
button "...", 28, 283 192 14 12
}
on *:dialog:çokgen:*:*:{
if $devent == init {
set %çokrenks Siyah,Beyaz,Lacivert,Yeşil,Kırmızı,Kahverengi,Mor,Turuncu,Sarı,Açık Yeşil,Turkuaz,Pembe
set %çokrenkscode 1,16777215,8323072,37632,255,127,10223772,32764,65535,64512,16776960,16711935
didtok $dname 9,11,14 44 Siyah,Beyaz,Lacivert,Yeşil,Kırmızı,Kahverengi,Mor,Turuncu,Sarı,Açık Yeşil,Turkuaz,Pembe
çok 6 200 1 8323072 5 65535 16776960
}
if $devent == sclick {
if $did == 25 {
if !$did($dname,4) { mhata Kaç gen olması gerektiğini belirtiniz. }
elseif !$did($dname,7) { mhata Çevrel çemberin yarıçapını belirtiniz. }
elseif !$did($dname,24) { mhata Kenar kalınlığını belirtiniz. }
elseif !$did($dname,14) { mhata Çizim rengini belirtiniz. }
elseif !$did($dname,11) { mhata Arkaplan rengini belirtiniz. }
elseif $did($dname,12).state == 1 && !$did($dname,9) { mhata İç rengini belirtiniz. }
else { çok $did($dname,4) $did($dname,7) $iif($did($dname,6).state == 0,1,2) $renkkod($did($dname,14)) $&
$did($dname,24) $renkkod($did($dname,11)) $iif($did($dname,12).state == 1,$renkkod($did($dname,9))) }
}
if $did == 28 { did -ra $dname 27 $sdir(*,Klasör Seç) }
if $did == 15 { var %f $$?="Dosya adı giriniz" | copy -o tempcok.bmp $did($dname,27) $+ $iif(%f,$iif($isfile(%f $+ .bmp),%f $+ $ticks,%f),$ticks) $+ .bmp }
}
}
alias renkkod return $gettok(%çokrenkscode,$findtok(%çokrenks,$1,1,44),44)
alias mhata { noop $input($1-,ohud,HATA) }
alias çok {
var %t $ticks
window -dp @çokgen 0 0 $calc($2 +500) $calc($2 +500) | drawfill -r @çokgen $6 $6 0 0 | var %a 1,%açı $calc(360 / $1),%x 0,%r $2,%o $calc(($2 +500) /2),%f tempcok.bmp
while %a <= $1 {
if ($3 == 2) { var %koor1 %koor1 $calc(%o + (%r * $cos(%x).deg)) $calc((%o -100) + (%r * $sin(%x).deg)) }
var %koor %koor $calc(%o + (%r * $cos(%x).deg)) $calc(%o + (%r * $sin(%x).deg))
if ($3 == 2) { drawline -r @çokgen $4 $5 $calc(%o + (%r * $cos(%x).deg)) $calc(%o + (%r * $sin(%x).deg)) $calc(%o + (%r * $cos(%x).deg)) $calc((%o -100) + (%r * $sin(%x).deg)) }
inc %x %açı | inc %a
}
drawline -r @çokgen $4 $5 %koor $calc(%o + (%r * $cos(0).deg)) $calc(%o + (%r * $sin(0).deg))
if ($3 == 2) { drawline -r @çokgen $4 $5 %koor1 $calc(%o + (%r * $cos(0).deg)) $calc((%o -100) + (%r * $sin(0).deg)) }
if ($7) { drawfill -r @çokgen $7 $4 %o %o }
$iif($isfile(tempcok.bmp),.remove tempcok.bmp)
drawsave @çokgen %f
did -g çokgen 2 %f
window -c @çokgen
did -ra çokgen 18 $calc($ticks - %t) ms. | did -ra çokgen 20 %açı | did -ra çokgen 22 $pic(%f).width x $pic(%f).height
}
komutuyla çalıştırabilirsiniz.