任意正六边形随机撒点 是通信仿真里经常用到的,无奈网上资料很少,参照http://www.ilovematlab.cn/thread-136761-1-1.html,我又苦思敏想里一下午,这个问题才得以完美解决。废话不多说了,先来看看怎么画正六边形。
theta = linspace(0,2*pi,7);
plot(cos(theta),sin(theta),'g-');
两句代码就可以画出一个正六边形了,其中第一句也可以这样写:N=6;
theta = 0:2*pi/N:2*pi;
效果是一样的,无非是通过【cos(theta),sin(theta)】计算出七个点,将这七个点首尾依次相连,画出六条边。
如下图所示:
这个正六边形有点小特殊,它的中心在坐标轴的原点(0,0)处,边长d=1.网上还有另外一种画正六边的方法,是通过给顶中心O和边长d来计算出每个顶点的位置,用一个for循环画六次,相当麻烦,我未采用。但这种两句话画出的正六边形相当特殊,不能满足使用需要,用这种计算cos、sin得到点坐标的画法,网上再无资料了,怎么用这种画法画出任意中心O,边长d的正六变形呢?先来看我们把边长弄为d。首先看下面的图: