0

我用C写了一个代码来实现DDA画线算法。这条线总是在左上角生成并且很细,我希望这条线在屏幕中间。谁能告诉我有什么问题?我的代码:

#include<stdio.h>
#include<graphics.h>
#include<math.h>

void main()
{
    int x,y,x1,y1,x2,y2,temp;
    int gd=DETECT,gm;
    initgraph(&gd,&gm,NULL);    
    printf("Enter the x1,y1:\n");
    scanf("%d %d",&x1,&y1);
    printf("Enter the x2,y2:\n");
    scanf("%d %d",&x2,&y2);
    int dx=abs(x2-x1);
    int dy=abs(y2-y1);
    if(dx>dy)
    {
        temp=dx;
    }
    else
    {
        temp=dy;
    }
    float xin=dx/temp;
    float yin=dy/temp;
    x=x1;
    y=y1;
    for(int k=0; k<temp; k++)
    {
        x=x+xin;
        y=y+yin;
        putpixel(x,y,RED);
        delay(100);
    }
getch();
closegraph;
}

我还附上了输出的图像。在此处输入图像描述

4

0 回答 0