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: 625009
Yazar: ZoRKaYa