Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中绘制三角形的外接圆?_Python_Geometry_Triangle - Fatal编程技术网

如何在Python中绘制三角形的外接圆?

如何在Python中绘制三角形的外接圆?,python,geometry,triangle,Python,Geometry,Triangle,拜托,你能帮我做这个吗?我可以画一个三角形,也可以计算圆心(我不知道这是否有用),我已经计算了半径。但我不知道如何画一个圆圈。我的方法并不能连接所有的顶点。谢谢你的建议 import turtle import math from math import pi alfa=60 # in degrees beta=40 gama=80 c = 100 sin_alfa = math.sin(pi/180*alfa) # in radians sin_beta = math.sin(pi/180*

拜托,你能帮我做这个吗?我可以画一个三角形,也可以计算圆心(我不知道这是否有用),我已经计算了半径。但我不知道如何画一个圆圈。我的方法并不能连接所有的顶点。谢谢你的建议

import turtle
import math
from math import pi
alfa=60 # in degrees
beta=40
gama=80
c = 100
sin_alfa = math.sin(pi/180*alfa)  # in radians
sin_beta = math.sin(pi/180*beta)
sin_gama = math.sin(pi/180*gama)
a = c/sin_gama *sin_alfa # a,b calculated
b = c/sin_gama *sin_beta
board = turtle.Turtle()
board.forward(100) # base c 
board.left(180-beta)
board.forward(a)
board.left(180-gama)
board.forward(b)
board.left(180-alfa)
rad = rad = a/2*sin_alfa # radius of a circumcircle
board.circle(rad)

你想在三角形中间画一个圆吗? 如果是这样,那么你所要做的就是

#一切和三角形的代码
董事会
前进板(50)
董事会主席
#代码的其余部分

请详细说明

这个修改后的代码将画一个接触所有角落的圆

import turtle
import math
from math import pi
alfa=60 # in degrees
beta=40
gama=80
c = 100
sin_alfa = math.sin(pi/180*alfa)  # in radians
sin_beta = math.sin(pi/180*beta)
sin_gama = math.sin(pi/180*gama)
a = c/sin_gama *sin_alfa # a,b calculated
b = c/sin_gama *sin_beta
board = turtle.Turtle()
board.forward(100) # base c 
board.left(180-beta)
board.forward(a)
board.left(180-gama)
board.forward(b)
board.left(180-alfa)
rad = a/(2*sin_alfa)   # radius of a circumcircle


# shift pen to bottom-most point of the circle
board.up()
board.forward(c/2)
board.right(90)
board.forward(rad*(1-(1-sin_gama**2)**0.5))
board.down()
board.left(90)

# the circle
board.circle(rad)

turtle.done()
以下是光标移动方式的图形说明:


非常感谢您的回答。我试过了,结果就是这样。这有点不准确。只是乌龟不是100%准确?可以吗?再次感谢。这是我得到的图片,C顶点似乎有点偏离。[1] :@MonikaSistkova你说得对,我做了一个小计算。我将发布更正。是的,海龟图案并不那么精确,但它通常是可以忍受的。你得到的结果肯定不是那么可以忍受的。感谢您指出。请重新检查代码,并将此答案标记为已接受,如果它对您有帮助:)它有效。谢谢。