Bresenham算法画直线的函数的问题

发布于 2021-11-22 15:29:03 字数 1504 浏览 907 评论 1

菜鸟一枚。。看了一下Bresenham算法的推导。。自己写了个画直线的函数,但就是和例题中画线函数(也是用Bresenham)画出来的图形不一样。求大神指点。。


int Draw_Line2(int x0, int y0,
 int x1, int y1,
 DWORD color,
 UCHAR *vb_start, int lpitch)
{
 if (x0 > x1)//确保dx>0;
 {
  int temp = x0; x0 = x1; x1 = temp;
  temp = y0; y0 = y1; y1 = temp;
 }
 int x = x0, y = y0;
 int   dx = x1 - x0;
 int   dy = y1 - y0;
 
 vb_start = vb_start + x0 + y0*lpitch;
 int Sub;
 if (dy > 0)
 {
  if (dx > dy)
  {
   Sub = (dy << 1) - dx;
   while (x++ <= x1)
   {
    *vb_start = color;
    ++vb_start;
    if (Sub > 0)
    {
     vb_start += lpitch;
     Sub += (dy << 1) -( dx << 1);
    }
    else
     Sub += (dy << 1);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眉黛浅 2021-11-25 01:04:44

好歹用个代码格式..这样的排版没人愿意看的....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文