Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
! EUC-jp
! 文字コードはEUC-jp
! 自由形式のfortranで書いています。
! g77でコンパイルする場合は、
!g77 -ffree-form -o smv smv.f
! のようにコンパイルしてください。
! gfortran でコンパイルする場合は文字コードをutf-8にしてください。
!program daiya
implicit real*8 (a-h, o-z)
pi=2.d0*asin(1.d0)
r=1.d0/2.d0/pi !半径
h=0.5d0 !高さ
m=20 !周方向分割数
n=10 !高さ方向分割数
nset=m*(n+1) !節点数
nyou=2*m*n !要素数
open(7,file='yousosuu.txt')
write(7,*) nyou
write(7,*) m,n
close(7)
th=2.d0*pi/m !ダイヤ1つぶんの中心角
dh=h/n !ダイヤ三角1段ぶんの高さ(斜めになってるから三角形の高さではない)
!
open(8,file='kakutyuu.obj')
write(8,'("3DG1")')
write(8,*) nset
do j=0,n !高さ方向に
do i=0,m-1 !円周方向に1回りずつ
!xyz座標を出力
!write(8,*) r*cos(i*th+j*th/2.),r*sin(i*th+j*th/2.),j*dh
write(8,*) r*cos(i*th),r*sin(i*th),j*dh
end do
end do
!
!1周ずつ逆三角形と順三角形の頂点の節点を交互に外から見て左回りに出力
do j=0,n-1 !高さ方向
do i=0,m-1 !周方向に
if(i/=m-1) then !周の開始から一つ前まで
!逆三角形の右上頂点、左上頂点、下頂点
write(8,*) 3,j*m+i+1,j*m+i,(j+1)*m+i,' ','0xcccccc'
!三角形の左下頂点、右下頂点、上
write(8,*) 3,(j+1)*m+i,(j+1)*m+i+1,j*m+i+1,' ','0xcccccc'
else !周の一番最後は、開始点の頂点とくっつくように
write(8,*) 3,j*m,j*m+i,(j+1)*m+i,' ','0xcccccc'
write(8,*) 3,(j+1)*m+i,(j+1)*m,j*m,' ','0xcccccc'
end if
end do
end do
write(8,'("#")') !daiya.objファイルから要素数を読み取るとき用
close(8)
!
!
end