lv100love 該用戶已被刪除 | 如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。 本帖最後由 lv100love 於 2013-3-19 08:45 PM 編輯
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define pi ( 4.0*atan(1.0) )
int main()
{
int mat_H[2][2]; //H alpha
int mat_R[2][2]; //H beta
int mat_C[2][2]; //輸出矩陣(空白)
int mat_Z[2][2];
int i , j , k , n=5;
double alpha , beta , theta , err ;
theta = 2*pi/5 ;
alpha = theta ;
beta = 2*theta ;
mat_R[0][0] = cos(alpha) ;
mat_R[0][1] = sin(alpha) ;
mat_R[1][0] = sin(alpha) ;
mat_R[1][1] = -cos(alpha) ;
mat_H[0][0] = cos( beta) ;
mat_H[0][1] = sin( beta) ;
mat_H[1][0] = sin( beta) ;
mat_H[1][1] = -cos( beta) ;
mat_Z[0][0] = cos( alpha - beta ) ;
mat_Z[0][1] = sin( alpha - beta ) ;
mat_Z[1][0] = sin( alpha - beta ) ;
mat_Z[1][1] = -cos( alpha - beta ) ;
err = 0.0 ;
for ( i = 0 ; i < 2 ; i++ ) {
for ( j = 0 ; j < 2 ; j++ ) {
mat_C[j] = 0.0 ;
for ( k = 0 ; k < 2 ; k++ ) {
mat_C[j] = mat_C[j] + mat_H[k]*mat_R[k][j] ;
}
err = err + fabs( mat_C[j] - mat_Z[j] ) ;
PF("i, j = %2d %2d, err = %17.14f \n", i, j, err ) ;
}
}
PF("\nerror in ALL is %e \n", err ) ;
system("PAUSE");
return 0 ;
}
PF=printf.
大家好,小弟第一次接觸C++只有半個月的時間上個星期我們教授給了我們練習了一題之後我覺得沒什麼大概,但是延伸題就有點瓶頸
上面是練習鏡射矩陣的H(Beta角)*H(Alpha角)=H(alpha-beta角)
圖形是正五邊形,以X軸旋轉72度為H1、再轉72為H2...等等
後來教授要求我們以這C語言為基準
依照二維平面正五邊形的五個頂點做鏡射
教授要我們做的是
H1乘上H1~H5、H2乘上H1~H5……等等
然後再計算誤差,總計會出現25個
這讓小弟無從下手……
... |
|