首页 > 解决方案 > 如何知道两个圆是否相交?海龟图形

问题描述

我正在学习如何使用 Turtle-Python,我想知道如何编写一个程序,该程序将两个圆的 x,y 中心值和半径作为输入,在海龟窗口中绘制它们,并打印它们是否相交.

PD:我学到的东西不多,所以很高兴看到一些简单的代码,这样我就明白发生了什么

任何帮助,将不胜感激 :)

标签: pythonturtle-graphicspython-turtle

解决方案


如果我们将圆自己制作成海龟,而不是画圆,那么我们可以简单地使用海龟自己的distance()方法来实现:

from turtle import Screen, Turtle

CURSOR_RADIUS = 10

screen = Screen()

x1, y1, radius1 = screen.textinput("Green Circle", "Please enter: x y radius").split(maxsplit=3)

turtle1 = Turtle()
turtle1.shape('circle')
turtle1.color('green')
turtle1.shapesize(int(radius1) / CURSOR_RADIUS)
turtle1.penup()
turtle1.goto(int(x1), int(y1))

x2, y2, radius2 = screen.textinput("Red Circle", "Please enter: x y radius").split(maxsplit=3)

turtle2 = Turtle()
turtle2.shape('circle')
turtle2.color('red')
turtle2.shapesize(int(radius2) / CURSOR_RADIUS)
turtle2.penup()
turtle2.goto(int(x2), int(y2))

if turtle1.distance(turtle2) < int(radius1) + int(radius2):
    marker = Turtle()
    marker.hideturtle()
    marker.write("Overlap!", align='center', font=('Arial', 24, 'bold'))

screen.exitonclick()

推荐阅读