Python İle Ağırlık Merkezi Bulma ve PHP ile Çizdirme
py Dosyası
xeksenindemoment=[]
yeksenindemoment=[]
xeksenindekoord=[]
yeksenindekoord=[]
kutleler=[]
def kutleal(m,x,y):
kutleler.append(m)
xeksenindekoord.append(x)
yeksenindekoord.append(y)
xmoment=m*x
ymoment=m*y
xeksenindemoment.append(xmoment)
yeksenindemoment.append(ymoment)
def sor():
islem=raw_input("Kütle girmek için birşey yazmadan enter, çizim dosyasını yazdırmak için ciz() yazıp enter, çıkmak için exit() yazıp entera basınız")
if (islem==''):
if len(kutleler)==0:
m=int(raw_input("Kütlenin ağırlığını giriniz"))
if (m==0 or m<0):
print "0 veya daha az birim kütleli ağırlık olmaz"
sor()
else:
x=int(raw_input("Kütlenin x eksenindeki koordinatını giriniz"))
y=int(raw_input("Kütlenin y eksenindeki koordinatını giriniz"))
kutleal(m,x,y)
else:
m=int(raw_input("Yeni kütlenin ağırlığını giriniz"))
if (m==0):
print "0 birim kütleli ağırlık olmaz"
sor()
else:
x=int(raw_input("Yeni kütlenin x eksenindeki koordinatını giriniz"))
y=int(raw_input("Yeni kütlenin y eksenindeki koordinatını giriniz"))
kutleal(m,x,y)
elif (islem=='ciz()'):
ciz()
elif (islem=='exit()'):
exit()
else:
sor()
def hesapla():
global xkoord, ykoord, a, b, kutle
a=sum(xeksenindemoment)
b=sum(yeksenindemoment)
kutle=sum(kutleler)
xkoord=a/kutle
ykoord=b/kutle
print("Su anda kütlelerin merkezi(%s, %s) koordinatlarında ve toplam %s birimdir")%(xkoord,ykoord,kutle)
def ciz():
import os, math
ucnoktalar=[math.fabs(min(xeksenindekoord)),math.fabs(min(yeksenindekoord)),max(xeksenindekoord),max(yeksenindekoord)]
buyuk=max(ucnoktalar)
if (250/buyuk)>25:
oran=25
else:
oran=250/buyuk
cizim=open("ciz.php","w")
cizim.write("""<?
Header('Content-Type: image/jpg');
$im = ImageCreateTruecolor(600,600);
ImageFilledRectangle($im,550,300,50,300,0x00ffffff);//x ekseni
ImageFilledRectangle($im,300,550,300,50,0x00ffffff);//y ekseni
$white = ImageColorAllocate($im,255,255,255);
$red = ImageColorAllocate($im,255,0,0);
""")
for i in range(len(xeksenindekoord)):
xkoordinat=oran*xeksenindekoord[i]
ykoordinat=oran*yeksenindekoord[i]
xekseniyazida=xeksenindekoord[i]
yekseniyazida=yeksenindekoord[i]
kutle1=kutleler[i]
cizim.write("ImageFilledRectangle($im,"+str(300+xkoordinat-0.5*oran)+","+str(300-ykoordinat+0.5*oran)+","+str(300+xkoordinat+0.5*oran)+","+str(300-ykoordinat-0.5*oran)+",0x00ffffff);\n")
cizim.write("ImageString($im,"+str(oran)+","+str(300+xkoordinat-oran*1)+","+str(300-ykoordinat+oran)+",'("+str(xekseniyazida)+","+str(yekseniyazida)+")',$white);\n")
cizim.write("ImageString($im,"+str(oran)+","+str(300+xkoordinat)+","+str(300-ykoordinat-oran)+",'"+str(kutle1)+"',$white);\n")
cizim.write("ImageFilledRectangle($im,"+str(300+xkoord*oran-0.25*oran)+","+str(300-ykoord*oran+0.25*oran)+","+str(300+xkoord*oran+0.25*oran)+","+str(300-ykoord*oran-0.25*oran)+",0x00ff0000);\n")
cizim.write("ImageString($im,"+str(oran)+","+str(300+xkoord*oran-oran*0.5)+","+str(300-ykoord*oran+oran*0.5)+",'("+str(xkoord)+","+str(ykoord)+")',$red);\n")
cizim.write("ImageString($im,"+str(oran)+","+str(300+xkoord*oran)+","+str(300-ykoord*oran-oran*1)+",'"+str(kutle)+"',$red);\n")
cizim.write("""ImageFilledRectangle($im,0,550,15,565,0x00ff0000);
ImageString($im,20,20,550,'Kutle Merkezi',$white);
ImageFilledRectangle($im,0,567,15,582,0x00ffffff);
ImageString($im,20,20,567,'Kutleler',$white);
ImagePNG($im);?""")
print "###Ciz.php girdiğiniz değerler doğrultusunda oluşturuldu###"
def main():
try:
sor()
except(ValueError):
print "Son yazdığınız kayıt değer hatası yaptığınız için kaydedilmedi. Yalnızca sayı girerek tekrar deneyin"
sor()
hesapla()
while True:
main()
Hit: 625657
Yazar: ZoRKaYa