游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3731|回复: 3

如何生成一个随机的封闭多边形(指定多边形边数)?

[复制链接]

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2004-10-30 12:58:00 | 显示全部楼层 |阅读模式
如题

7

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2004-10-30 14:08:00 | 显示全部楼层

Re:如何生成一个随机的封闭多边形(指定多边形边数)?

先考虑一下,你画多边形的数据是怎么组织的,首先得有一个起点,或是什么中心点之类的,然后根据你给的边数,算出组成多边形点的坐标,你就可以画了

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2004-11-2 16:33:00 | 显示全部楼层

Re:如何生成一个随机的封闭多边形(指定多边形边数)?

支持中心点算法...我捏造了一个...好像很麻烦,不知又没简单的...同求
    1.指定一个中心点(或者随机)
    2.随机生成n各点数组Point[n].

    3.校验oint加上中心点n+1个点是否都个不相同
    4.有相同的,随机点替换其中一个,回3.

    3.校验:n个点没有3点在一条直线上.
    4.如有,随机点替换3个其中一个,返回3

    5.指定处世弧度方向(如向上),计算各个点与中心点的联系与处世弧度的角度(0-360]:RAD[n]
    6.RAD[n]排序

    7.RAD[n]下标顺序就是n多边形的顶点顺序
    8.画图.

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2004-11-2 16:51:00 | 显示全部楼层

Re:如何生成一个随机的封闭多边形(指定多边形边数)?

还有一个开始点的随机点算法,不过只生成凸多边形...要凹多边形好像更麻烦....:
1.随机生成开始点(第0个点).
2.随机生成n-1个不同的角度((0-360],降幂排序)和n个边长(>0);
3.for(i=0;i<n-1;i++)  
    {
     取第i个弧度和第i个边长;
     生成第i个点与第i-1个点距离为i边长,角度(从i-1到i)i弧度;
    }
4.连接n-1与n点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 02:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表