2017-05-11 15 views
0

sin() 및 cos() 함수를 사용하여 반지름이 다른 원을 그리는 데 관심이 있습니다.cos() sin()으로 원 그리기, 반복 픽셀 없음, 간격 없음?

라디안을 증가 시켜서 동일한 위치에 여러 개의 플롯이없고 픽셀 기반 디스플레이에 그려진 원의 틈이 없도록하는 황금률 규칙이 있습니까?

x = cos(r) * radius 
y = sin(r) * radius 
r = r + s 

내 생각에 2x PI를 반경에서 파생 된 숫자로 나누는 것과 관련이 있습니까?

부동 소수점 계산의 한계로 인해 이것이 정말 간단하거나 불가능하다고 확신합니다. 시간에 대한

감사

앤서니

+0

:'Y = + -sqrt (R * r - x * x)' – martin

답변

0

아크의 길이는 단순히 s = r * delta_fir는 원의 반지름이고, fi은 각도이고 delta_fi는 각도의 변화입니다.

x 축이 호의 투사가 delta_x = s * sin(fi)입니다

과에 하나 delta_x 또는 delta_y은 분명히 1.

입니다 당신은 delta_fi 싶지는 delta_y = s * cos(fi)

이다 Y 축, 문제가 대칭이며, 우리는 fi -45 °에서 45 °까지 그리고 delta y에서 그것을 풀고 다른 사분면에서 같은 해를 적용 할 수 있습니다. 우리는이 : 따라서

r * delta_fi * cos(fi) = 1

: 대상 해상도를 알고 있다면

, 그것은 각각의 X에 대한 Y의 두 값을 계산하는 것이 좋습니다

delta_fi = 1/cos(fi)/r