必威体育Betway必威体育官网
当前位置:首页 > IT技术

万花尺模拟程序

时间:2019-09-27 20:14:32来源:IT技术作者:seo实验室小编阅读:65次「手机版」
 

万花尺

万花尺模拟程序

万花尺相信很多人小时候都玩过吧,将一个满是齿牙的小圆套在一个大圆里面,用笔放进小圆的洞里,然后转圈圈画,就可以画出很多美丽有趣的图案。这个程序就是万花尺的模拟程序。

////////////////////////////////////////////
// 程序名称:万花尺(又名万花规)模拟程序
// 编译环境:visual studio 2013,EasyX 2017-9-19
// 程序作者:鼠瓜
// 最后更新:2012-12-9
//
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define PI 3.1415926536

void main()
{
	int R;		// 外部静圆半径
	int r;		// 内部动圆半径
	int dr;		// 内部动圆上的作图点到圆心的距离

begin:
	// 获取用户输入
	printf("请输入外部静圆半径(小于 240):");
	scanf_s("%d", &R);
	printf("请输入内部动圆半径(小于静圆半径):");
	scanf_s("%d", &r);
	printf("请输入内部动圆上的作图点到圆心的距离(小于动圆半径):");
	scanf_s("%d", &dr);
	system("cls");

	// 求执行次数(最小公倍数/静圆半径)
	int m = R, n = r;
	int tmp;
	while (n != 0)
	{
		tmp = m % n;
		m = n;
		n = tmp;
	}
	double maxdegree = r / m * 2 * PI;	//

	// 初始化
	initgraph(640, 480);	// 创建绘图窗口
	setorigin(320, 240);	// 设定圆心坐标

	// 绘图
	int x, y;
	for (double degree = 0; degree < maxdegree; degree += 0.01)
	{
		x = (int)(dr * cos(degree*(double(R) / r - 1)) + (R - r) * cos(degree));
		y = (int)(dr * sin(degree*(double(R) / r - 1)) - (R - r) * sin(degree));
		putpixel(x, y, GREEN);
	}
	outtextxy(-320, 220, _T("绘制完毕,按 ESC 退出,按其他键重新开始"));

	// 重新开始,或退出程序
	char c = _getch();
	closegraph();
	if (c != 27) goto begin;
}

相关阅读

设计万花筒|设计中的『道』与『术』

“形而上者谓之道,形而下者谓之器。”在设计中融入“道”与“术”的思维,则是要在艺术创新中不断地推翻自己,在产品设计中分析探求需

设计万花筒|设计中的『道』与『术』

“形而上者谓之道,形而下者谓之器。”在设计中融入“道”与“术”的思维,则是要在艺术创新中不断地推翻自己,在产品设计中分析探求需

助你进阶成为“设计万花筒”:色彩叠加

文章主要介绍了一个可以让你进阶成为“设计万花筒”的技能手法——色彩叠加。在看球赛时,某个选手眼花缭乱的进攻方式,会被我们称呼

AE怎么制作旋转万花筒特效?

以前很喜欢万花筒,旋转的万花筒效果是一个比较好玩的效果,想要使用AE中制作这个旋转的万花筒的效果动画,下面我们就来看看ae制作万花

分享到:

栏目导航

推荐阅读

热门阅读