谁能帮我看下这段程序,为什么最后输出的直线斜率是正的,两个点所画出的直线应该是负的才对啊#include #include // 四舍五入int Round(float x){\x05return (int)(x < 0 x - 0.5 :x + 0.5);}// 使用 DDA 算法画任
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 23:43:09
![谁能帮我看下这段程序,为什么最后输出的直线斜率是正的,两个点所画出的直线应该是负的才对啊#include #include // 四舍五入int Round(float x){\x05return (int)(x < 0 x - 0.5 :x + 0.5);}// 使用 DDA 算法画任](/uploads/image/z/4624334-62-4.jpg?t=%E8%B0%81%E8%83%BD%E5%B8%AE%E6%88%91%E7%9C%8B%E4%B8%8B%E8%BF%99%E6%AE%B5%E7%A8%8B%E5%BA%8F%2C%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%80%E5%90%8E%E8%BE%93%E5%87%BA%E7%9A%84%E7%9B%B4%E7%BA%BF%E6%96%9C%E7%8E%87%E6%98%AF%E6%AD%A3%E7%9A%84%2C%E4%B8%A4%E4%B8%AA%E7%82%B9%E6%89%80%E7%94%BB%E5%87%BA%E7%9A%84%E7%9B%B4%E7%BA%BF%E5%BA%94%E8%AF%A5%E6%98%AF%E8%B4%9F%E7%9A%84%E6%89%8D%E5%AF%B9%E5%95%8A%23include+%23include+%2F%2F+%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5int+Round%28float+x%29%7B%5Cx05return+%28int%29%28x+%3C+0+x+-+0.5+%3Ax+%2B+0.5%29%3B%7D%2F%2F+%E4%BD%BF%E7%94%A8+DDA+%E7%AE%97%E6%B3%95%E7%94%BB%E4%BB%BB)
谁能帮我看下这段程序,为什么最后输出的直线斜率是正的,两个点所画出的直线应该是负的才对啊#include #include // 四舍五入int Round(float x){\x05return (int)(x < 0 x - 0.5 :x + 0.5);}// 使用 DDA 算法画任
谁能帮我看下这段程序,为什么最后输出的直线斜率是正的,两个点所画出的直线应该是负的才对啊
#include
#include
// 四舍五入
int Round(float x)
{
\x05return (int)(x < 0 x - 0.5 :x + 0.5);
}
// 使用 DDA 算法画任意斜率的直线(包括起始点,不包括终止点)
void Line_DDA(int x1,int y1,int x2,int y2,int color)
{
\x05float x,y;\x05\x05// 当前坐标点
\x05float cx,cy;\x05// x、y 方向上的增量
\x05
\x05int steps = abs(x2 - x1) > abs(y2 - y1) abs(x2 - x1) :abs(y2 - y1);
\x05x = (float)x1;
\x05y = (float)y1;
\x05cx = (float)(x2 - x1) / steps;
\x05cy = (float)(y2 - y1) / steps;
\x05for(int i = 0; i < steps; i++)
\x05{
\x05\x05putpixel(Round(x),Round(y),color);\x05// 在坐标 (x,y) 处画一个 color 颜色的点
\x05\x05x += cx;
\x05\x05y += cy;
\x05}
}
// 主函数
void main()
{
\x05initgraph(640,480);
\x05
\x05// 测试画线
\x05Line_DDA(100,1,1,478,GREEN);
\x05Line_DDA(1,478,638,1,GREEN);
\x05
\x05// 按任意键退出
\x05getch();
\x05closegraph();
}
谁能帮我看下这段程序,为什么最后输出的直线斜率是正的,两个点所画出的直线应该是负的才对啊#include #include // 四舍五入int Round(float x){\x05return (int)(x < 0 x - 0.5 :x + 0.5);}// 使用 DDA 算法画任
程序没有错误.关于正负问题,主要是因为屏幕坐标系,默认的屏幕坐标系,y 轴向下为正,和数学的坐标系正好相反,所以才会出现你说的问题.