IT/파이썬
[코딩도장] day26. 파이썬 두 점 사이의 거리 구하기
_하늘여우_
2020. 9. 19. 23:23
■ 들어가기
- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그
▶ Unit37. 두 점 사이의 거리 구하기
- 37.1 두 점 사이의 거리 구하기
>> 37.1 두 점 사이의 거리 구하기 <<
1. 클래스로 점 구현하기
소스 (two_point.py) | 결과 |
class Point2D : def __init__(self, x, y) : self.x = x self.y = y p1 = Point2D(x=30, y=20) # 점1 p2 = Point2D(x=60, y=50) # 점2 print('p1: {} {}'.format(p1.x, p1.y)) print('p2: {} {}'.format(p2.x, p2.y)) |
p1: 30 20 p2: 60 50 |
2. 피타고라스의 정리로 두 점의 거리 구하기
- 피타고라스 정리(a^2 + b^2 = c^2)에 따라 p1, p2의 거리를 구하기 위해서 선 a와 b의 길이를 구함
소스 (two_point_distance.py) | 결과 |
class Point2D : def __init__(self, x, y) : self.x = x self.y = y p1 = Point2D(x=30, y=20) # 점1 p2 = Point2D(x=60, y=50) # 점2 # print('p1: {} {}'.format(p1.x, p1.y)) # print('p2: {} {}'.format(p2.x, p2.y)) a = p2.x - p1.x # 선 a의 길이 b = p2.y - p1.y # 선 b의 길이 c = math.sqrt( (a * a) + (b * b) ) # 제곱근 구하기 (import math 필요) print(c) |
42.42640687119285 |
- (a * a)는 pow(a, 2)로 표현 가능함
- 거듭제곱(power) 사용법 : math.pow(값, 지수) /* 값을 지수만큼 거듭제곱한 값을 반환 */
=> (a * a) + (b * b) == math.pow(a, 2) + math.pow(b, 2)
- 파이썬에서 제공하는 거듭제곱 연산자 **를 사용해도 ok
=> (a * a) + (b * b) == (a ** 2) + (b ** 2)
[참고] 절댓값 함수
- 내장 함수 abc 또는 math 모듈의 fabs 함수 사용 (abs = absolute value)
- abs(값) : 정수는 절댓값을 정수로 반환, 실수는 절댓값을 실수로 반환
- math.fabs(값) : 절댓값을 실수로 반환