2016-12-02 2 views
0

파이썬 및 실제 값에 의한 계산 영역의 부정확성에 관한 질문이 있습니다. 나는 그것에 대해 많이 조사했지만 아무것도 찾지 못했습니다. 이 차이가 다음 계산을 부정확하게 만들었습니다.파이썬에 의해 계산 된 면적 값과 실제 값의 차이

7.05723410373 

하지만 원의 면적에 대한 실제 값 :이다

from shapely.geometry import Point, Polygon 

a = Point(1, 1).buffer(1.5) 

print (a.area) 

및 I있어 그 결과 여기서 I는 반경 1.5으로 갖는 원의 면적을 계산 코드 반지름 1.5의 경우 :

pi()*(1.5^2) = 7.0685834705 

아무도 나를 위해이 차이를 설명 할 수 있습니까? 컴퓨터의 기본값을 변경해야합니까? , 문서 당

object.buffer(distance, resolution=16, cap_style=1, join_style=1, mitre_limit=1.0) 
    Returns an approximate representation of all points within a given distance of the this geometric object. 

:

import math 

print (math.pi) 

정확하게 실제 pi() 값과 동일합니다 : 다음 Shapely User Manual에서

3.14159265359 

답변

1

또한 여기에 내 컴퓨터의 pi() 값 반환 값은 단지 근사값입니다. 이 문서의 아래쪽에는 원이 그려져 있습니다.

The default (resolution of 16) buffer of a point is a polygonal patch with 99.8% of the area of the circular disk it approximates. 

>>> p = Point(0, 0).buffer(10.0) 
>>> len(p.exterior.coords) 
66 
>>> p.area 
313.65484905459385 

다시 말하면 설명서에는 근사치 만 나와 있습니다. 7.068의 99.8 %, 반경이 1.5 인 실제 값은 약 7.054이며 매끈하게 계산됩니다.

당신은 더 높은 해상도를 전달하여 정확도를 높일 수 있습니다 :

a = Point(1, 1).buffer(1.5, resolution=32)