边数为n棱的形c语言编程,[求助]请教用c语言编正 n边形的问题

代码如下,我用NEO写的,可以很容易得改成基于graphics.h的,只要将ploy()函数中的画线函数换了就行了,当然main函数里的初始代码也要换成graphics的:

#include "neo.h"

#ifndef PI

#define PI 3.1415926f

#endif

/* x, y为正多边形的中心坐标 */

/* lng为正多边形的边长 */

/* cnt为多边形的边数 */

void ploy(int x, int y, int cnt, int lng)

{

double art;

int point_x, point_y;

int old_x, old_y;

int R=(int)(lng / 2)/sin(PI / cnt);

int i;

if(cnt % 2 == 1) /*判断正多边形边数的奇偶*/

{

old_x = 0;

old_y = R;

art = PI / 2;

}

else

{

art = PI / 2 - PI / cnt;

old_x = (int)(R * cos(art));

old_y = (int)(R * sin(art));

}

for(i = 0; i < cnt; i++)

{

art -= (2 * PI) / cnt;

point_x = (int)(R * cos(art));

point_y = (int)(R * sin(art));

line(old_x + x, old_y + y, point_x + x, point_y + y, WHITE);

old_x = point_x;

old_y = point_y;

}

}

main()

{

neo_init(); /*NEO初使化*/

set_video_mode(640, 480, 8, 75, 0); /*设置图形模式*/

install_keyboard();

ploy(320, 240, 5, 15);

ploy(320, 240, 6, 25);

ploy(320, 240, 7, 35);

ploy(320, 240, 8, 45);

ploy(320, 240, 9, 55);

_getch(); /* 暂停一下,看看前面绘图代码的运行结果 */

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值