用python画一个三角形内接圆
时间: 2023-11-04 13:04:43 浏览: 130
可以使用 Python 中的 turtle 模块来画三角形和内接圆。以下是实现的代码:
```python
import turtle
import math
# 创建窗口和画笔
window = turtle.Screen()
pen = turtle.Turtle()
# 定义三角形的顶点坐标
a = (-100, 0)
b = (0, 100)
c = (100, 0)
# 计算三角形的三边长度
ab = math.sqrt((b[0]-a[0])**2 + (b[1]-a[1])**2)
bc = math.sqrt((c[0]-b[0])**2 + (c[1]-b[1])**2)
ac = math.sqrt((c[0]-a[0])**2 + (c[1]-a[1])**2)
# 计算三角形的周长和半周长
p = ab + bc + ac
s = p / 2
# 计算三角形的内心坐标和半径
ix = (ab*a[0] + bc*b[0] + ac*c[0]) / p
iy = (ab*a[1] + bc*b[1] + ac*c[1]) / p
r = math.sqrt((s-ab)*(s-bc)*(s-ac) / s)
# 画三角形
pen.up()
pen.goto(a)
pen.down()
pen.goto(b)
pen.goto(c)
pen.goto(a)
# 画内接圆
pen.up()
pen.goto(ix+r, iy)
pen.down()
pen.circle(r)
# 关闭画笔和窗口
pen.hideturtle()
window.exitonclick()
```
代码解析:
1. 导入 turtle 和 math 模块,用于绘图和数学计算;
2. 创建 turtle 窗口和画笔对象;
3. 定义三角形三个顶点的坐标 a、b、c;
4. 根据三角形三个顶点的坐标,计算出三边长度 ab、bc、ac,并计算出三角形周长 p 和半周长 s;
5. 根据三角形三个顶点的坐标和半周长 s,计算出三角形内心的坐标 ix、iy;
6. 根据三角形的半周长 s 和三边长度 ab、bc、ac,以海伦公式计算出三角形的面积,再利用三角形面积公式计算出三角形内接圆的半径 r;
7. 使用 turtle 画笔对象,绘制三角形和内接圆;
8. 关闭画笔和窗口。
运行代码后,将会在turtle窗口中看到所画的图形。若想要保存图片,可以使用如下代码:
```python
# 将图形保存为图片
ts = pen.getscreen()
ts.getcanvas().postscript(file="triangle_circle.eps")
```
这将会将turtle窗口的图形保存为EPS格式的图片文件。你也可以将文件格式改为其他支持的格式,如PNG、JPG等。
阅读全文