集合了斜率大於1和小於1的情況
draw_point(x0,y0,color);是我寫的一個畫點的函數,可以不用管他,關鍵是畫線算法 /*畫線函數 此算法是針對Bresenham畫線算法的優化算法,去除了乘除法運算,使運算速度更快*/ int draw_line(int x0, int y0, int x1, int y1,unsigned int color) { int dx,dy,dx2,dy2,x_inc,y_inc,e,index; /*如果還沒有初始化圖形,就線初始化*/ if(isset == 0) { initgraphic(vga_320_200_256); } /*先計算x和y的增量*/ dx = x1-x0; dy = y1-y0; /*計算x軸方向*/ if(dx>=0)/*如果大於等於0,說明方向是向右*/ { x_inc = 1; } else/*否則方向相反*/ { x_inc = -1; dx = -dx;/*算絕對值*/ } /*計算y軸的方向*/ if(dy>=0)/*如果大於等於0,說明方向是向下*/ { y_inc = 1; } else/*否則方向相反*/ { y_inc = -1; dy = -dy;/*算絕對值*/ } /*計算增量的2倍*/ dx2 = dx << 1; dy2 = dy << 1; /*計算斜率的大小,如果斜率小於0說明線段小於45度*/ if(dx > dy) { /*初始化決策變量*/ e = dy2 - dx; /*開始畫線*/ for(index=0; index <= dx; index++) { /*畫點*/ draw_point(x0,y0,color); /*根據決策變量,計算下一點的y是否增加*/ if (e >= 0) { e-=dx2; y0+=y_inc; } /*調整決策變量的值*/ e+=dy2; /*x軸增進*/ x0+=x_inc; } } else/*斜率大於0,說明線段大於45度*/ { /*初始化決策變量*/ e = dy2 - dx; /*開始畫線*/ for(index=0; index <= dy; index++) { /*畫點*/ draw_point(x0,y0,color); /*根據決策變量,計算下一點的x是否增加*/ if (e >= 0) { e-=dy2; x0+=x_inc; } /*調整決策變量的值*/ e+=dx2; /*y軸增進*/ y0+=y_inc; } } }
http://blog.csdn.net/gsen/archive/2006/01/08/573966.aspx
直播概要: 隨着計算機的蓬勃發展,互聯網進入大數據和人工智能時代,爲了解決信息過載和長尾商品,推薦系統成爲唯一選擇,而面對不同的業務場景,爲了解決業務痛點,會根據不同的場景特點尋找不同的方法和手段來解決推薦中實際遇到的問題。在智慧家庭領域,
{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"typ
{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null
{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockq