2017-04-01 8 views
0

가 나는 점은 외부 원에, 내부의 경우 공식은 알고 알고 https://math.stackexchange.com/q/198769이 인용은 우리가 dr에 비교해야한다고 설명한다 (그것은 단지 5 라인있어 , 견적을 읽어 보시기 바랍니다).포인트가 원에 더 많이 또는 덜 속하는지 알 수있는 방법?

그러나 포인트가 원이 켜져 있는지 알고 싶습니다.. 또한, 그게 진짜 문제 야. 비트가 내/외부에있는 경우 원으로 간주하고 싶습니다.

어떻게하면됩니까? 범위 내에서 d-r (즉, : 비교)을 한정하려고했습니다. 예 :

경우 (박사> -100 & & 박사 < 100) {포인트는 원에}

그것은 작은 반경 원을 위해, -100과 100 작품 (즉, : 모든 점 비트 원 안쪽/안쪽 원으로 간주됩니다).

큰 반경의 원에 대해서는 일부 점만 원 위에있는 것으로 간주됩니다 (예 : 원 안쪽/밖에서 약간의 점 만 원 위에있는 것으로 간주 됨).

그래서 원의 바깥 쪽/안쪽에있는 모든 점은 원의 반경과 관계없이 원 위에있는 것으로 간주해야합니다. 어떻게?

+0

사용자의 질문은 코드를 작성하려는 프로그래밍 언어에 따라 다를 수 있습니다. 현 상태에서 문제를 유발할 수있는 요소를 추론하는 것은 매우 어렵습니다. (이는 코드에 사용 된 데이터 유형의 오해와 제한 사항 때문일 수 있습니다.) –

답변

2
절대 차이에 대한 귀하의 비교가 짧은 등

if Abs(d - r) < delta (i.e. 100) ... 

를 작성하지만이 같은 원 반경에 따라 상대적 차이를해야 할 것 같다 수 있습니다

: 확률 적 관점에서

if Abs(d - r)/r < reldelta (i.e. 0.001) ... 
1

, 당신은 정의 할 수 있습니다 상대 거리를 채택하는 일종의 거리지도 (@Mbo가 제안한 것)를 사용하여 각 점에 확률 분포를 만듭니다. 확률은 점의 원에 속하는 일종의 가능성을 나타냅니다. 직관적으로, 포인트가 가까울수록 원의 일부가 될 확률이 높습니다. 예 :

rel_d = (d-r)/r; 

// P(x on the circle) = 1 - rel_d 
if(rel_d < 1){ 
    P_on_circle = 1 - rel_d; 
}else{ 
    P_on_circle = 0; 
}