私は入力から与えられた辺のサイズでMatoplotlibを使って三角形をPythonで描画しようとしています。下に私のコードが表示されます。どのように変数をとり、Matplotlibで三角形を描くことができますか?Matplotlibは入力から与えられた辺を持つ三角形を描画します
import numpy as np
import turtle
from turtle import *
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import matplotlib.patches as patches
def triangle_angle(t, v, w):
"""Diese Funktion ergibt den Eck zwischen v und w"""
cosT=np.divide((v**2+w**2-t**2),2*v*w)
alfaT=np.arccos(cosT)
alfaT=np.degrees(alfaT)
return alfaT
def triangle(a,b,c):
l=[]
if (a+b>c) and (a+c>b) and (b+c>a) : #
l.append(True)
l.append(np.sum([a,b,c]))
p = float(np.divide(l[1], 2)) #Berechnet die haelfte des Umfangs
l.append(np.sqrt(np.prod([p, (p - a), (p - b), (p - c)]))) #Berechnet die Flaeche mittles Heron Formula
else:
l.append(False) #Gibt dem ersten Element den Wert False
l.append("Diese Zahlen koennen kein Dreieck konstruieren, Das Umfang koennte nicht berechnet sein")
l.append("Die Flaeche koennte nicht berechnet sein") # Die Flaeche und Umfang koennte nicht berechnet werden
return(l)
print("Dieses Programm prueft ob es mit 3 gegebene Laengen ein Dreickes gibt, berechnet \
die Flaeche und das Umfang des Dreiecks und es zeichnet")
x=float(raw_input("geben Sie die erste Zahl ein "))
y= float(raw_input("geben Sie die erste Zahl ein "))
z= float(raw_input("geben Sie die erste Zahl ein "))
if (x<=0) or (y<=0) or (z<=0):
print("Eine oder mehrere Zahlen sind nicht positiv, bitte geben Sie die !Positive! Zahlen noch einmal. ")
x=float(raw_input("geben Sie die erste Zahl ein "))
y= float(raw_input("geben Sie die erste Zahl ein "))
z= float(raw_input("geben Sie die erste Zahl ein "))
if triangle(x,y,z)[0] == True:
print("So ein Dreiecks gibt es. Das Umfang ist "+str(triangle(x,y,z)[1])+" und die Flaeche ist "+str(triangle(x,y,z)[2]))
else:
print("So ein Dreiecks gibt es nicht")
else:
if triangle(x,y,z)[0] == True:
print("So ein Dreiecks gibt es. Das Umfang ist "+str(triangle(x,y,z)[1])+" und die Flaeche ist "+str(triangle(x,y,z)[2]))
else:
print("So ein Dreiecks gibt es nicht")
fig1 = plt.figure()
ax1 = fig1.add_subplot(111, aspect='equal')
ax1.add_patch(patches.RegularPolygon((0.5, 0.5),3,0.2,))
plt.show()
ご協力いただきありがとうございます。
あなたは三角形を描画する方法を求めていますか? – kazemakase
@kazemakaseはい、入力に基づいて三角形を描く方法を尋ねています。したがって、var x = 5 y = 7 z = 7の場合は、入力に基づいて三角形を描画する方法を尋ねています。プログラムは私にこれらの辺を持つ三角形を描きます。 – Radu033
@kazemakase matplotlibは座標で動作します。座標を与えれば、イメージが描画されます。 3つのxと3のyを持つ三角形の場合、(0,0)、(1,0)、(1,1)が一例です。プロット関数を使用して、x = [0,1,1]、y = [0,0,1] ax.plot(x、y)としてプロットすることができます。もちろん、これらの値が入力から来るようにするには、ユーザーが自分のデータを入力してリストに追加するためのforループを作成します。 –