电锯惊魂云盘:bressham算法

来源:百度文库 编辑:高考问答 时间:2024/05/06 05:45:13
今天上机实习,给老师检查时说错了话,告诉了他我的算法是照书抄的,他竟然要我先把网格画出来,然后把画的直线的每个点在上面标记出来,我的天!选修也不用这样为难一个对计算机毫不感冒的人吧?
哪位强人能告诉我这个程序怎么写啊?
先在这里跪谢了!

算法原理是:按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后确定该列象素中与此交点最近的象素。
??设直线的斜率k在[0,1]间,y列的象素确定,行下标为 x。下一个象素的列坐标为y+1。而x要么不变,要么递增1。x是否增1取决于误差项d 的值。误差项d 的初始值为0。y下标每增加1,d 的值相应递增直线的斜率值,即 d=d+k 。当d 大于等于1,就把它减去1,使d 始终在 0,1 之间。当d >0.5 时,直线与y+1列垂直网格线交点最接近于当前象素(x,y)的右上方象素(x+1,y+1);而当d <0.5时,更接近于象素(x,y+1),当d=0.5时,取(x,y+1)。