turtle 画三角形内切圆
时间: 2023-09-04 12:07:27 浏览: 138
你可以使用Python的turtle库来画一个三角形内切圆。以下是一个示例代码:
```python
import turtle
import math
# 创建画布和画笔
canvas = turtle.Screen()
pen = turtle.Turtle()
# 画三角形
side_length = 200 # 三角形边长
angle = 120 # 三角形内角
radius = side_length / (2 * math.sin(math.radians(angle / 2))) # 内切圆半径
pen.penup()
pen.goto(-side_length / 2, -radius)
pen.pendown()
for _ in range(3):
pen.forward(side_length)
pen.left(120)
# 画内切圆
pen.penup()
pen.goto(0, -radius)
pen.pendown()
pen.circle(radius)
# 关闭画布
canvas.exitonclick()
```
运行这段代码,你将得到一个画有三角形和内切圆的图形窗口。希望这能帮到你!如果你还有其他问题,请继续提问。
相关问题
python使用turtle画三角形外接圆 代码
以下是使用Python的turtle模块绘制三角形外接圆的代码:
```python
import turtle
import math
# 定义三角形三个顶点的坐标
A = (-100, 0)
B = (0, 200)
C = (100, 0)
# 计算三角形的外接圆半径和圆心坐标
a = math.sqrt((B[0]-C[0])**2 + (B[1]-C[1])**2)
b = math.sqrt((A[0]-C[0])**2 + (A[1]-C[1])**2)
c = math.sqrt((A[0]-B[0])**2 + (A[1]-B[1])**2)
p = (a+b+c)/2
R = (a*b*c)/(4*math.sqrt(p*(p-a)*(p-b)*(p-c)))
O = ((a*A[0]+b*B[0]+c*C[0])/(a+b+c), (a*A[1]+b*B[1]+c*C[1])/(a+b+c))
# 创建画布和画笔
screen = turtle.Screen()
pen = turtle.Turtle()
# 绘制三角形和外接圆
pen.penup()
pen.goto(A)
pen.pendown()
pen.goto(B)
pen.goto(C)
pen.goto(A)
pen.penup()
pen.goto(O[0]+R, O[1])
pen.pendown()
pen.circle(R)
# 隐藏画笔并保持窗口运行
pen.hideturtle()
turtle.mainloop()
```
该代码首先定义了三角形的三个顶点坐标,然后通过勾股定理和海伦公式计算出三角形的外接圆的半径和圆心坐标。接着使用turtle的penup、goto和pendown方法绘制三角形和外接圆,最后隐藏画笔并保持窗口运行。
python画三角形外接圆 代码
以下是Python代码,用于绘制一个三角形的外接圆:
```python
import math
import turtle
# 定义三角形的三个顶点坐标
A = (-100, 0)
B = (0, 200)
C = (100, 0)
# 计算三角形的外接圆半径和圆心坐标
a = math.sqrt((B[0] - C[0])**2 + (B[1] - C[1])**2)
b = math.sqrt((A[0] - C[0])**2 + (A[1] - C[1])**2)
c = math.sqrt((A[0] - B[0])**2 + (A[1] - B[1])**2)
s = (a + b + c) / 2
R = a * b * c / (4 * math.sqrt(s * (s - a) * (s - b) * (s - c)))
x = (a**2 * (b**2 + c**2 - a**2) * A[0] + b**2 * (c**2 + a**2 - b**2) * B[0] + c**2 * (a**2 + b**2 - c**2) * C[0]) / (16 * R**2 * (a**2 * (b**2 + c**2 - a**2) + b**2 * (c**2 + a**2 - b**2) + c**2 * (a**2 + b**2 - c**2)))
y = (a**2 * (b**2 + c**2 - a**2) * A[1] + b**2 * (c**2 + a**2 - b**2) * B[1] + c**2 * (a**2 + b**2 - c**2) * C[1]) / (16 * R**2 * (a**2 * (b**2 + c**2 - a**2) + b**2 * (c**2 + a**2 - b**2) + c**2 * (a**2 + b**2 - c**2)))
# 设置海龟的起始位置和方向
turtle.penup()
turtle.goto(A)
turtle.pendown()
# 绘制三角形和圆
turtle.forward(a)
turtle.left(math.degrees(math.acos((a**2 + c**2 - b**2) / (2 * a * c))))
turtle.forward(c)
turtle.left(math.degrees(math.acos((a**2 + b**2 - c**2) / (2 * a * b))))
turtle.forward(b)
turtle.goto(A)
turtle.penup()
turtle.goto(x, y - R)
turtle.pendown()
turtle.circle(R)
# 显示绘制结果并保持窗口打开
turtle.done()
```
运行以上代码,你将看到一个三角形和它的外接圆。
阅读全文