Language/Python

[ Python ] 두 원의 위치 관계 시뮬레이션 프로그램

곽수진 2021. 8. 26. 02:55
반응형
사용자로부터 2개의 원에 대한 정보를 받아서 화면에 원을 그린 후에 그 관계를 시뮬레이션하는 프로그램을 작성해보자.

 

import turtle
t=turtle.Turtle()
t.shape("turtle")

x1 = int(input("큰 원의 중심 좌표 x1: "))
y1 = int(input("큰 원의 중심 좌표 y1: "))
r1 = int(input("큰 원의 반지름: "))
x2 = int(input("작은 원의 중심 좌표 x2: "))
y2 = int(input("작은 원의 중심 좌표 y2: "))
r2 = int(input("작은 원의 반지름: "))

t.penup()
t.goto(x1, x2)
yy1= y1- r1
t.goto(x1, yy1)
t.pendown()
t.circle(r1)

t.penup()
t.goto(x2, y2)
yy2 = y2 - r2
t.goto(x2, yy2)
t.pendown()
t.circle(r2)

dist = ((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1-y2))**0.5

if dist == 0:
    turtle.write("동심원")
elif dist == r1 - r2:
    turtle.write("내접")
elif r1 - r2 < dist < r1 + r2:
    turtle.write("두 점에서 만납니다.")
elif dist > r1+r2:
    turtle.write("만나지 않고 외부에 있습니다.")
elif dist == r1+r2:
    turtle.write("외접")
elif dist < r1 - r2:
    turtle.write("만나지 않고 외부에 있습니다.")

 

사용자가 입력하는 모습

 

결과값 출력 모습

 

▶️ r1 - r2 < dist < r1 + r2r1 - r2 < dist and dist < r1 + r2로 표현 가능

반응형