【问题标题】:How can I draw a circumcircle of a triangle in Python Turtle?如何在 Python Turtle 中绘制三角形的外接圆?
【发布时间】:2021-07-03 11:50:30
【问题描述】:

请问,您能帮我解决这个问题吗?我可以画一个三角形,还可以计算圆心(我不知道它是否有用),我已经计算了半径。但我不知道如何自己画一个圆。我拥有它的方式并没有连接所有顶点。感谢您的任何想法。

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)

【问题讨论】:

    标签: python geometry triangle


    【解决方案1】:

    修改后的代码将绘制一个触及所有角的圆。

    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]:i.stack.imgur.com/57D2y.png
    • @MonikaSistkova 你是对的,我做了一个小的计算 oopsie。我会发布更正。是的,海龟图形并不那么精确,但通常可以容忍。你得到的输出绝对不是那么可以容忍的。感谢您指出。
    • 如果对您有帮助,请重新检查代码并将此答案标记为已接受:)
    【解决方案2】:

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

    # code for everything and triangle
    board.up()
    board.forward(50)
    board.down()
    # Rest of code
    

    请详细说明

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多