zoukankan      html  css  js  c++  java
  • Bresenham Line

     1/*  drawline using simple DDA */
     2void DrawLine(int x1, int y1, int x2, int y2)
     3{
     4    int x, y, hm=1, vm=1, sw=0, t;
     5    double dx, edx, dy, edy, eps;
     6    x = x2-x1;
     7    y = y2-y1;
     8    if (x < 0)
     9    {
    10        x = -x;
    11        hm = -1;
    12    }

    13    if (y < 0)
    14    {
    15        y = -y;
    16        vm = -1;
    17    }

    18    if (x < y)
    19    {
    20        sw = 1;
    21        t = x;
    22        x = y;
    23        y = t;
    24    }

    25    eps = 1./x;
    26    edx = eps*x;
    27    edy = eps*y;
    28    
    29    dx = dy = 0.5;
    30    if (sw == 0)
    31        SetPixel((int)dx*hm+x1, (int)dy*vm+y1);
    32    else
    33        SetPixel((int)dy*hm+x1, (int)dx*vm+y1);    
    34    while (dx < x)
    35    {
    36        dx += edx;
    37        dy += edy;
    38        if (sw == 0)
    39            SetPixel((int)dx*hm+x1, (int)dy*vm+y1);
    40        else
    41            SetPixel((int)dy*hm+x1, (int)dx*vm+y1);
    42    }

    43}

    44
  • 相关阅读:
    自定义ProgressBar
    Anroid开发中常用快捷键
    Intent用法
    IO(Input Output)流
    自定义Dialog
    仿UC点击两次返回键退出程序
    横竖屏切换时Activity的生命周期
    单例模式
    Timer用法
    关于数组
  • 原文地址:https://www.cnblogs.com/jay/p/529419.html
Copyright © 2011-2022 走看看