| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖
标题:中点花多变形怎么花?
只看楼主 加入收藏
yynn
Rank: 1
等 级:新手上路
帖 子:279
专家分:0
注 册:2005-11-4
收藏
 问题点数:0 回复次数:1 
中点花多变形怎么花?
rt
搜索更多相关主题的帖子: 中点 
2007-03-27 18:48
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 

/* x, y为正多边形的中心坐标 */
/* lng为正多边形的边长 */
/* cnt为多边形的边数 */
/* 返回值可供drawpoly()函数使用 */
int *polygon(int x, int y, unsigned cnt, unsigned lng)
{
double art;
const double PI = 3.1415926f;
unsigned R=(int)(lng >> 1)/sin(PI / cnt);
unsigned i;
int *points;

if (cnt < 2 || (points = malloc(cnt << 1)) == NULL)
{
return NULL;
}

if(cnt & 1) /*判断正多边形边数的奇偶*/
{
points[0] = 0 + x;
points[1] = R + y;

art = PI / 2.0f;
}
else
{
art = PI / 2.0f - PI / cnt;
points[0] = (int)(R * cos(art)) + x;
points[1] = (int)(R * sin(art)) + y;
}


for(i = 0; i < ((cnt - 1) << 1); i += 2)
{
art -= (PI * 2.0f) / cnt;
points[2 + i] = (int)(R * cos(art)) + x;
points[3 + i] = (int)(R * sin(art)) + y;
}

return points;
}

/*你可以用这段代码返回一个包含所要多边形顶点坐标的缓冲*/

2007-03-28 20:54
快速回复:中点花多变形怎么花?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020921 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved