1
考虑一个直径为10的圆,在其中做一个内接正十边形,计算其形状数
1.1 求围盒和单位格大小
本题中圆的直径为10个像素,其函数方程为 x^2+y^2=5,则 x=5cost,y=5sint
,那么正十边形的十个边界点为 x=5cos(n*pi/5),y=5sin(n*pi/5),n=0,1,...,10
那么可以得到正十边形宽度为10,长度为9.5106,其长宽比为1.051:1,接近于1,因此围盒大小为10×10平方像素单位,单位格大小为1×1平方像素单位,阶数为40。围盒和单位格如图1黑色方框所示。
1.2 求出边界多边形
本题我采用的是将面积的50%以上包在边界内的正方形划入内部的方法,得到了与边界最吻合的多边形如图1蓝色线框所示。
图
1 正十边形的形状数计算示意图
1.3 求链码与差分码
以(-5,
0)
为起始点,按顺时针方向循环计算链码,其为一个由方向数构成的自然数,结果为:1-1-0-1-0-1-0-1-0-0-0-0-3-0-3-0-3-0-3-3-3-3-2-3-2-3-2-3-2-2-2-2-1-2-1-2-1-2-1-1。
为了解决链码会因为目标旋转而改变的问题,我们需