A(ax, ay) B(bx, by) C(cx, cy) 移动后A(ax0, ay0)...
创新互联专业为企业提供桃源网站建设、桃源做网站、桃源网站设计、桃源网站制作等企业网站建设、网页设计与制作、桃源企业网站模板建站服务,十余年桃源做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
1)ax = r*cosα ay = r*sinα
ax0 = r*cos(α+90) ay0=r*sin(α+90) 用三角函数展开就ok了
2)旋转90度就是坐标点从一个象限旋转到另一个象限,先判断正负,再将横纵坐标交换并根据正负情况乘以-1或者1 这个问题就是高中解析几何的旋转问题。或者图形学里的二维图形旋转问题
就是条直线,倾斜角是theta=atan(k)., 旋转60度后是theta2 = theta - pi/3,所以是y = tan(atan(k) - pi/3) x.
这个和C语言实现有什么关系?
#include math.h
#include stdio.h
int main() {
double k;
printf("Please input k:\n");
scanf("%lf", k);
printf("y = %lf x", tan(atan(k) - 3.1415926 / 3));
return 0;
}
这个行么?
#include "stdlib.h"
void rotate(int (*a)[3])
{
int i,j;
int temp[3][3];
for (i=0;i3;i++)
{
for (j=0;j3;j++)
temp[j][2-i]=a[i][j];
}
for (i=0;i3;i++)
{
for (j=0;j3;j++)
a[i][j]= temp[i][j];
}
}
main()
{
int i,j;
int a[3][3]= {11,22,33, 44,55,66, 77,88,99};
rotate(a);
printf(“after transform\n”);
for (i=0;i3;i++)
{
for (j=0;j3;j++)
printf(“%d\t”,a[i][j]);
}
怎样用C语言实现旋转
#include stdio.h
void main()
{
int M;
int N;
int flag=0;
int num1=0;
int num2=1;
int i=0;
int j=0;
char str='A';
char Array[31][31];
printf("请输入矩阵的行M和矩阵的列N:");
scanf("%d%d",M,N);
Array[0][0]=str;
while(flag M*N-1)
{
switch(num2%4)
{
case 1:
++j;
if(j == N-num1-1)
{
num2++;
}
break;
case 2:
++i;
if(i == M-num1-1)
{
num2++;
}
break;
case 3:
--j;
if(j == num1)
{
num2++;
}
break;
case 0:
--i;
if(i == num1+1)
{
num2++;
num1++;
}
break;
}
if(++str == 'Z'+1)
str='A';
Array[i][j]=str;
flag++;
}
for(i=0;iM;i++)
{
for(j=0;jN;j++)
{
printf("%c ",Array[i][j]);
}
printf("\n");
}
}
C语言程序设计
C语言程序设计
题目定了吗,需要写多少iz呢
#include stdio.h
#define N 5
void myturn(int a[N][N], int x, int y, int sx, int sy)
{
int dy = N - 1 - x;
int dx = y;
int val = a[y][x];
if (dx == sx dy == sy) {
a[sy][sx] = a[y][x];
return;
} else {
myturn(a, dx, dy, sx, sy);
a[dy][dx] = val;
}
}
void turn90(int a[N][N])
{
int s = 0, e = N - 1;
int i;
int l = 0;
while(s e) {
for(i = s; i e; ++i)
myturn(a, i, l, i, l);
++l;
++s;
--e;
}
}
int main()
{
int a[N][N] = {1,2,3,4,5, 6,7,8,9,10,
11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25};
int i, j;
turn90(a);
for(i = 0; i N; ++i) {
for(j = 0; j N; ++j)
printf("%d\t", a[i][j]);
putchar('\n');
}
return 0;
}