PID 필터를 사용하여 피드백 제어를 사용하는 Bresehham의 회선 알고리즘이 수정 된 경우 누구에게 알려 집니까? 기본적으로이 알고리즘은 오류 기간이 절반으로 증폭 된 P- 피드백 제어입니다. 나는 그래픽 보석 시리즈 보았다, Abrash의 책은, 등등은 그것이 여기에 어떤 아직Bresehham의 선 그리기 알고리즘 및 PID
0
A
답변
0
을 찾을 수 없습니다 : From Here합니다. 이 매개 변수는 P 매개 변수를 사용합니다 (링크 위쪽에 표시된 의사 코드의 단계 참조).
제공된 예제 코드는 이전 환경 (코드의 TurboC 참조)으로 작성되었으며 사용자가 작성해야하는 기능을 포함합니다. 예. initgraph()
, putpixel()
등입니다. 그러나 알고리즘은 완료된 것처럼 보입니다.
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <dos.h>
int main() {
/* request auto detection */
int gdriver = DETECT, gmode;
int x1 = 0, y1 = 0, x2, y2;
int err, x, y, dx, dy, dp, xEnd;
int twody, twodxdy;
/* initialize graphic driver */
initgraph(&gdriver, &gmode, "C:/TURBOC3/BGI");
err = graphresult();
if (err != grOk) {
/* error occurred */
printf("Graphics Error: %s\n",
grapherrormsg(err));
return 0;
}
/* max position in x and y axis */
x2 = getmaxx();
y2 = getmaxy();
/* draws line from (0, 0) to (x2, y2) */
dx = x2 - x1;
dy = y2 - y1;
twody = 2 * dy;
twodxdy = 2 * (dy - dx);
dp = twody - dx;
if (x1 > x2) {
x = x2;
y = y2;
xEnd = x1;
} else {
x = x1;
y = y1;
xEnd = x2;
}
/* put a dot at the position (x, y) */
putpixel(x, y, WHITE);
/* calculate x and y successor and plot the points */
while (x < xEnd) {
x = x + 1;
if (dp < 0) {
dp = dp + twody;
} else {
y = y + 1;
dp = dp + twodxdy;
}
/* put a dot at the given position(x, y) */
putpixel(x, y, WHITE);
/* sleep for 50 milliseconds */
delay(50);
}
getch();
/* deallocate memory allocated for graphic screen */
closegraph();
return 0;
}
+0
OP의 "수정 된"알고리즘이 무엇인지 잘 모르겠지만 이것은 원래의 * 알고리즘 일뿐입니다. – usr2564301
+0
누가 알겠습니까? 나에게 심사 숙제 된 원본을 보여 주면이 문서와 비교해보고 알려줄 것입니다. :) – ryyker
이 "PID 필터"가 무엇인지 또는 더 자세한 정보를 찾을 수있는 위치를 조금 넓힐 수 있습니까? 태그의 'pid'는 설명과 관련이없는 것 같습니다. – usr2564301
나는 그것을 의심한다. Bresenham은 사소하고 완벽하게 이해 된 응답 동역학으로 "통제 된 개체"에 대한 매우 구체적인 오류 최소화 문제를 해결합니다. PID 제어기는 제어 대상이 응답을 잘 이해하지 못하는 전반적인 제어 문제를 해결합니다. – Gene
@Jongware는 실제로 오타였습니다. –