저를 괴롭히는 Bresenham의 부동 소수점 알고리즘에 뭔가가 있습니다. 우리는 Y = 0.6 배을 그리려는Bresenham 선 그리기 알고리즘
void line(x0, x1, y0, y1)
{
int deltax = x1 - x0;
int deltay = y1 - y0;
float error = 0;
float deltaerr = Math.abs((float)deltay/(float)deltax);
int y = y0
for(int x=x0;x<=x1;x++)
{
SetPixel(x,y)
error = error + deltaerr
if (error >= 0.5)
{
y = y + 1
error = error - 1.0
}
}
}
가정합니다
알고리즘은 아래와 같습니다. 그래서 x = 0에 대한 첫 번째 단계에서 : 오류는 0.6으로 설정되고 if 문으로 실행되고 y 이 증가합니다. 오류는 -0.4로 설정됩니다. -0.4가 다음 단계에서 우리를 도울 수있는 방법은 무엇입니까?
error = error - 1.0
왜 우리가 1 오류가 사망한다 :
그래서 내 문제는이 코드 라인입니까? 나는 우리가 재조정 때문에 이것을했다고 읽었습니다! 어떻게 우리를 도울 수 있습니까? 우리는 우리가 y
을 건드리지 않고 x
증가 루프의 다음 반복에 들어갔을 때
[실제 알고리즘] (http://en.wikipedia.org/wiki/Bresenham's_line_algorithm#Algorithm)을 보셨습니까? 당신이 보여주는 사람은 단지 부분적으로 정확하기 때문에 –
위키 피 디아가 그것을 왜 페이지 상단에 놓았 는가? –