sy5.c

来自「计算机图形学 二维图形的旋转与平移设计 C语言编写的」· C语言 代码 · 共 68 行

C
68
字号

#include<stdio.h>
#include<graphics.h>
#include<math.h>
#include<stdlib.h>
void main()
{
	int gdriver,gmode;
	int i,j;
	int points[100][2];
	float changepoints[100][2];
	int numpoints;
	float m[2][2];
	gdriver = DETECT;
	initgraph(&gdriver,&gmode,"C:\\TCPP\\BGI");
	setbkcolor(1);
	setcolor(RED);
	printf("Please input number of points :");
	scanf("%d",&numpoints);	
	j = 1;
	for(i=0; i<numpoints; i++)
	{
		printf("Please input point %d : ",j++);
		scanf("%d%d",&points[i][0],&points[i][1]);		
	}


	for(i=0; i<numpoints-1; i++)
	{
		line(points[i][0],points[i][1],points[i+1][0],points[i+1][1]);
	}	
	line(points[0][0],points[0][1],points[numpoints-1][0],points[numpoints-1][1]);
	printf("Please input anxi of chan zhao dian :");
	scanf("%f%f",&m[0][1],&m[1][0]);
	printf("Please input anxi of bi lei :");
	scanf("%f%f",&m[0][0],&m[1][1]);
	for(i=0; i<numpoints; i++)
	{
		changepoints[i][0] = m[0][0]*points[i][0] + m[1][0]*points[i][1];
		changepoints[i][1] = m[0][1]*points[i][0] + m[1][1]*points[i][1];
	}
	for(i=0; i<numpoints-1; i++)
	{
		line(changepoints[i][0],changepoints[i][1],changepoints[i+1][0],changepoints[i+1][1]);
	}	
	line(changepoints[0][0],changepoints[0][1],changepoints[numpoints-1][0],changepoints[numpoints-1][1]);
	printf("Please input  xuan zhuan anxi :");
	int a,b;
	scanf("%d%d",&a,&b);	
	printf("Please input  xuan zhuan jiao du :");
	float x;
	scanf("%f",&x);	
	
	for(i=0; i<numpoints; i++)
	{
		changepoints[i][0] = cos(x)*points[i][0] - sin(x)*points[i][1] - a*(cos(x)-1)+b*sin(x);
		changepoints[i][1] = sin(x)*points[i][0] + cos(x)*points[i][1] - a*sin(x) - b*(cos(x) - 1);
	}
	for(i=0; i<numpoints-1; i++)
	{
		line(changepoints[i][0],changepoints[i][1],changepoints[i+1][0],changepoints[i+1][1]);
	}	
	line(changepoints[0][0],changepoints[0][1],changepoints[numpoints-1][0],changepoints[numpoints-1][1]);
	getchar();
	getchar();
	getchar();
	closegraph();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?