모든 기사는, 그들은이 mathematical term
의 아이디어에서 오는가Bresenham Line 알고리즘의 의사 결정 변수는 어떻게 계산 되었습니까? 내가 Bresenham 선 알고리즘에 대한 연구
Pi = dx * (d1 - d2)
변수 결정에 대해 이야기?
내 말은 결정 변수로 dx * (d1 - d2)
을 취한 뒤에 있었던 생각은 무엇입니까?
왜 d1 - d2
만 찍지 않았습니까?
모든 기사는, 그들은이 mathematical term
의 아이디어에서 오는가Bresenham Line 알고리즘의 의사 결정 변수는 어떻게 계산 되었습니까? 내가 Bresenham 선 알고리즘에 대한 연구
Pi = dx * (d1 - d2)
변수 결정에 대해 이야기?
내 말은 결정 변수로 dx * (d1 - d2)
을 취한 뒤에 있었던 생각은 무엇입니까?
왜 d1 - d2
만 찍지 않았습니까?
우리가 d1-d2
에 관심있는 유일한 정보가 표시이기 때문에, 우리가 양의 값을 곱하면 아무것도 잃을 수 없습니다. 우리는 실제로 d1
과 d2
의 값을 알지 못하며, 우리가 알고있는 것들로부터 그들의 값을 계산해야합니다. 그러나이 계산에는 dX
으로 나누기가 포함되며 가능한 경우 구분이 느려지므로 피해야합니다. 결과적으로 dX
은 항상 양수이므로 d1
과 d2
을 dX
으로 곱하면 원하는 정보를 잃지 않고 나누기 연산을 제거 할 수 있습니다.
브레 센함의 알고리즘은 45도 섹션으로 잘라낸 원의 한 부분에 초점을 맞추고 그 중 하나만 해결합니다. 원은 점 x1, y1 (즉, 전달 된 첫 번째 매개 변수)에서 그릴 수있는 모든 선을 고려하여 형성됩니다. 그러나, 형성 될 수있는 모든 라인에 솔루션을 일반화하기 위해 단 하나의 섹션 (즉, x가 양방향 모두에서 y보다 빠르게 상승한다고 가정하기 때문에, 그 원의 다른 모든 섹션을 하나의 섹션으로 변환해야 함) 그것은 원을 그리는 방법을 알고 있습니다. 일반적으로 x1, y1 < x2, y2를 확인하고 이것이 보유되지 않은 경우 스왑하는 초기화 알고리즘의 일부가 초기화 코드로 표시됩니다. 이렇게하면 처리해야하는 줄 수의 관점에서 반을 효과적으로 줄일 수 있습니다. 이제 코드의 다음 부분에서만 4 가지 다른 슬로프를 처리해야합니다. 의사 결정 변수는 알고리즘이 속하는 4 개의 섹션을 파악하는 최적화입니다. 우리는 항상 양의 X 방향으로 가고 있지만 문제는 우리가 X보다 빠르게 (섹션 1 & 4 시계 시작 위치) 또는 X가 Y보다 빠르게 움직이는 것입니다 (섹션 2 & 3).
결정 변수를 사용하면 루프의 각 반복에서 if 문을 수행하지 않아도됩니다.
아는 것이 없으면 의사 결정 변수가 어떻게 사용되는지 말할 수 없습니다. 이것은 모든 구현이 사용하지 않는 알고리즘의 다른 부분의 이름 일 수 있습니다. 예를 들어, http://en.wikipedia.org/wiki/Bresenham's_line_algorithm은 의사 결정 변수를 설명하지 않습니다. – chubbsondubs