📄 rd6sum2.pro
字号:
pro rd6sum2,Rklh,DSijt,DSijt1,rdsum,p
rdsum=0L
case p of
0:DSijt1=DSijt ;旋转0 OK
1: begin ;以层为基准旋转90
for j=0,3,1 do begin
DSijt1(*,*,j)=rotate(DSijt[0:3,0:3,j],1)
endfor
end
2: begin ;以层为基准旋转180 OK
for j=0,3,1 do begin
DSijt1(*,*,j)=rotate(DSijt[0:3,0:3,j],2)
endfor
end
3: begin ;以层为基准旋转270 OK
for j=0,3,1 do begin
DSijt1(*,*,j)=rotate(DSijt[0:3,0:3,j],3)
endfor
end
4:begin ;以行为基准旋转90(前转) ok
arr1=intarr(4,4)
for j=0,3,1 do begin
arr2=DSijt[0:3,j,0:3]
arr1[*,*]=arr2[*,*,*]
DSijt1(*,*,j)=rotate(arr1,1)
endfor ;for j
end
5:begin ;以行为基准旋转180 ok
arr1=intarr(4,4)
for j=0,3,1 do begin
arr2=DSijt[0:3,j,0:3]
arr1[*,*]=arr2[*,*,*]
DSijt1(*,*,j)=rotate(arr1,2)
endfor ;for j
end
6:begin ;以行为基准旋转270 ok
arr1=intarr(4,4)
for j=0,3,1 do begin
arr2=DSijt[0:3,j,0:3]
arr1[*,*]=arr2[*,*,*]
DSijt1(*,*,j)=rotate(arr1,3)
endfor ;for j
end
7:begin ;以列为基准旋转90 ok
arr1=intarr(4,4,4)
arr2=intarr(4,4)
Ds=intarr(4,4,4)
for j=0,3,1 do begin
arr1=DSijt[j,0:3,0:3]
arr2=transpose(reform(arr1))
; for k=0,7,1 do begin
; arr2(k,*)=arr1[*,*,k]
; endfor ;
DSijt1(*,*,j)=rotate(rotate(arr2,1),1)
endfor ;for j
end
8:begin ;以列为基准旋转180 ok
arr1=intarr(4,4,4)
arr2=intarr(4,4)
for j=0,3,1 do begin
arr1=DSijt[j,0:3,0:3]
arr2=transpose(reform(arr1));
DSijt1(*,*,j)=rotate(rotate(arr2,1),2)
endfor ;for j
end
9:begin ;以列为基准旋转270 ok
arr1=intarr(4,4,4)
arr2=intarr(4,4)
for j=0,3,1 do begin
arr1=DSijt[j,0:3,0:3]
arr2=transpose(reform(arr1))
DSijt1(*,*,j)=rotate(rotate(arr2,1),3)
endfor ;for j
end
10:begin ;以层为基准左右镜像
for j=0,3,1 do begin
DSijt1(*,*,j)=reverse(DSijt[0:3,0:3,j],1)
endfor
end
11:begin ;以层为基准上下镜像
for j=0,3,1 do begin
DSijt1(*,*,j)=reverse(DSijt[0:3,0:3,j],2)
endfor
end
12:begin ;以行为基准左右镜像
arr1=fltarr(4,4,4)
for j=0,3,1 do begin
arr1=reform(DSijt[0:3,j,0:3])
; for k=0,7,1 do begin
; arr3(*,k)=arr1[*,*,k]
; endfor ;for k
dsijt1(*,*,j)=reverse(arr1,1)
endfor ;for j
end
13:begin ;以行为基准上下镜像
arr1=fltarr(4,4,4)
for j=0,3,1 do begin
arr1=reform(DSijt[0:3,j,0:3])
dsijt1(*,*,j)=reverse(arr1,2)
endfor ;for j
end
14:begin ;以列为基准左右镜像
arr1=fltarr(4,4,4)
for j=0,3,1 do begin
arr1=DSijt[j,0:3,0:3]
arr2=transpose(reform(arr1))
; for k=0,3,1 do begin
; arr3(k,*)=arr1[*,*,k]
; endfor ;for k
dsijt1(*,*,j)=reverse(arr2,1)
endfor ;for j
end
15:begin ;以列为基准上下镜像
arr1=fltarr(4,4,4)
for j=0,3,1 do begin
arr1=DSijt[j,0:3,0:3]
arr2=transpose(reform(arr1))
; for k=0,3,1 do begin
; arr3(k,*)=arr1[*,*,k]
; endfor ;for k
dsijt1(*,*,j)=reverse(arr2,2)
endfor ;for j
end
16:begin ;以层为基准主对角线转置
arr1=fltarr(4,4,4)
for j=0,3,1 do begin
arr1=DSijt[0:3,0:3,j]
dsijt1(*,*,j)=transpose(arr1)
endfor
end
17:begin ;以层为基准次对角线转置
arr1=fltarr(4,4,4)
for j=0,3,1 do begin
arr1=DSijt[0:3,0:3,j]
DSijt1(*,*,j)=rotate(arr1,6)
endfor
end
18:begin ;以行为基准主对角线转置
arr1=fltarr(4,4,4)
for j=0,3,1 do begin
arr1=DSijt[0:3,j,0:3]
dsijt1(*,*,j)=transpose(reform(arr1))
endfor ;for j
end
19:begin ;以行为基准次对角线转置
arr1=fltarr(4,4,4)
arr2=fltarr(4,4,4)
arr3=fltarr(4,4)
for j=0,3,1 do begin
arr1=DSijt[0:3,j,0:3]
for k=0,3,1 do begin
arr3(*,k)=arr1[*,*,k]
endfor ;for k
dsijt1(*,*,j)=rotate(arr3,6)
endfor ;for j
end
20:begin ;以列为基准主对角线转置
arr1=fltarr(4,4,4)
arr2=fltarr(4,4,4)
arr3=fltarr(4,4)
for j=0,3,1 do begin
arr1=DSijt[j,0:3,0:3]
for k=0,3,1 do begin
arr3(k,*)=arr1[*,*,k]
endfor ;for k
dsijt1(*,*,j)=transpose(arr3)
endfor ;for j
end
21:begin ;以列为基准次对角线转置
arr1=fltarr(4,4,4)
arr2=fltarr(4,4,4)
arr3=fltarr(4,4)
for j=0,3,1 do begin
arr1=DSijt[j,0:3,0:3]
for k=0,3,1 do begin
arr3(k,*)=arr1[*,*,k]
endfor ;for k
dsijt1(*,*,j)=rotate(arr3,6)
endfor ;for j
end
endcase
;print,p
;print,DSijt1
;计算Rklh*DSijt1的和
rdsum=total(long(Rklh)*long(DSijt1))
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -