八方向栅格化
1.求出直线顶点所在网格,利用点的栅格化方法
2.比较直线横向和纵向跨越的网格数
1)如果横向跨度大,则按横向网格的列循环,求出横向网格列的中心线与直线的交点所在的网格单元
2)如果纵向跨度大,则按纵向网格的行循环,求出纵向网格列的中心线与直线的交点所在的网格单元
3)如果AB的斜率不存在,那么按行号循环,列号不变
3.输出栅格数据
点的栅格化
设置原点p0(x0,y0),然后根据点的栅格化公式得出点对应的行和列。
公式:
I(行号)=(int)((xi-x0)/d)+1
J(列号)=(int)((yi-y0)/d)+1
求直线与栅格中心线的交点
采用数值微分法:
1)由给定直线的两个端点,得到直线的微分方程