Aciklama: X ve Y koordinatlari verilen resim penceresinde girilen degerlerin pasta grafigini cizer.
Kullanim : /pastagrafik @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]reismi xkordinati ykordinati dairecapi baslik deger
Örnek Komut:
1-
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/pastagrafik @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]reismi 100 100 250 Patlıcan(kg) 40 Soğan(kg) 10 Ekmek(Adet) 15 Patates(kg) 11.90 Havuc(kg) 35 Ithal Muz(kg) 110 Seftali Nektarin(kg) 150 Maydanoz(demet) 15 Tuzlu Fistik Ici(kg) 140
[Kod Baslangic]
Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias pastagrafik {
if @* !iswm $1 { goto pastagrafikhatamesaj }
if $2 !isnum || $3 !isnum || $4 !isnum { goto pastagrafikhatamesaj }
if $5 isnum { goto pastagrafikhatamesaj }
if !$window($1) { window -p $$1 }
var %past-penc = $1
var %daire-x-kord = $$2
var %daire-y-kord = $$3
var %daire-cap = $$4
if ($4 < 150) { var %daire-cap = 150 }
var %daire-yari-cap = $calc(%daire-cap / 2)
var %yerlesik_daire_kordinat_x = $calc(%daire-x-kord + %daire-yari-cap)
var %yerlesik_daire_kordinat_y = $calc(%daire-y-kord + %daire-yari-cap)
var %karisik-degerler = $strip($5-)
var %toplam-pasta-deger = 360
var %pasta-kaca-bolunecek = $_rakam_ayikla(%karisik-degerler).bolum
if (%pasta-kaca-bolunecek > 13) { echo $color(info) * Maximum 13 deger girmelisiniz | return }
var %karisik-deger-toplami = $_rakam_ayikla(%karisik-degerler).topla
var %karisik-deger-yuzdesi-acisal-oran = $_rakam_ayikla(%karisik-degerler).toplamyuzdeacisal
drawrect -e %past-penc 1 1 %daire-x-kord %daire-y-kord %daire-cap %daire-cap
tokenize 32 $sorttok(%karisik-deger-yuzdesi-acisal-oran,32,nr)
var %n = 1
var %t = 1
var %h = 1
while (%t <= $0) {
drawrect -f %past-penc $calc(%h + 1) 1 $calc(%daire-cap + %daire-x-kord + 20) %daire-y-kord 15 15
drawtext %past-penc $calc(%h +1) verdana 10 $calc(%daire-cap + %daire-x-kord + 20 + 20) %daire-y-kord $replace($token($_rakam_ayikla(%karisik-degerler),%h,149),~,->)
var %daire-y-kord = $calc(%daire-y-kord + 20)
var %x = [ $ $+ [ %t ] ]
var %l = 1, %n = %n
inc %h
;h <- renk degeridir
while (%l <= $round($calc(%x),0)) {
var %cos_x_ekseni_hesaplanmis = $round($calc(%yerlesik_daire_kordinat_x + (%daire-yari-cap * $cos(%n).deg)),0)
var %sin_y_ekseni_hesaplanmis = $round($calc(%yerlesik_daire_kordinat_y - (%daire-yari-cap * $sin(%n).deg)),0)
drawline %past-penc %h 4 %yerlesik_daire_kordinat_x %yerlesik_daire_kordinat_y %cos_x_ekseni_hesaplanmis %sin_y_ekseni_hesaplanmis
inc %n
inc %l
}
inc %t
}
return
:pastagrafikhatamesaj
echo $color(info) * /pastagrafik @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]reismi xkordinati ykordinati dairecapi baslik deger
echo $color(info) * Ornek: /pastagrafik @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]reismi 100 100 250 Patlıcan(kg) 40 Soğan(kg) 10 Ekmek(Adet) 15 Patates(kg) 11.90 Havuc(kg) 35 Ithal Muz(kg) 110 Seftali Nektarin(kg) 150 Maydanoz(demet) 15 Tuzlu Fistik Ici(kg) 140
}
alias _rakam_ayikla {
var %i = 1, %z = 0, %deger-topla-m
tokenize 32 $$1-
while [ $ $+ [ %i ] ] {
var %d = $v1, %n = %n %d
if (%d isnum) {
inc %z
if ($prop == $null) {
var %noop_or_command = %noop_or_command $token(%n,-1,32) $+ ~ $+ $removecs(%n,$token(%n,-1,32)) $+ $chr(149)
}
var %j = %j $+($token(%n,-1,32),/,jeun,*360)
inc %deger-topla-m $token(%n,-1,32)
unset %n
}
inc %i
}
if ($prop == bolum) { return %z }
if ($prop == topla) { return %deger-topla-m }
if ($prop == toplamyuzdeacisal) { return $replace(%j,jeun,%deger-topla-m) }
return $sorttok(%noop_or_command,149,nr)
}
[Kod Bitis]
Not: En fazla 14 baslik girebilirsiniz.
Not2: Lutfen kodun calismamasi durumunda hata varsa buraya hatayi yaziniz.
[Ornek Resim]
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.