A(ax, ay) B(bx, by) C(cx, cy) 移動后A(ax0, ay0)...
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供桃源網(wǎng)站建設、桃源做網(wǎng)站、桃源網(wǎng)站設計、桃源網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、桃源企業(yè)網(wǎng)站模板建站服務,十余年桃源做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
1)ax = r*cosα ay = r*sinα
ax0 = r*cos(α+90) ay0=r*sin(α+90) 用三角函數(shù)展開就ok了
2)旋轉(zhuǎn)90度就是坐標點從一個象限旋轉(zhuǎn)到另一個象限,先判斷正負,再將橫縱坐標交換并根據(jù)正負情況乘以-1或者1 這個問題就是高中解析幾何的旋轉(zhuǎn)問題?;蛘邎D形學里的二維圖形旋轉(zhuǎn)問題
就是條直線,傾斜角是theta=atan(k)., 旋轉(zhuǎn)60度后是theta2 = theta - pi/3,所以是y = tan(atan(k) - pi/3) x.
這個和C語言實現(xiàn)有什么關系?
#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語言實現(xiàn)旋轉(zhuǎn)
#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;
}