Class | Geometry |
In: |
geometry.f90
|
幾何学に関するルーチン
Subroutine : | |||
xp : | real, intent(in)
| ||
yp : | real, intent(in)
| ||
rad : | real, intent(in)
| ||
num : | integer, intent(in)
| ||
xd(num) : | real, intent(inout)
| ||
yd(num) : | real, intent(inout)
|
デカルト点 xp, yp から半径 rad の円を描き, その値を 極座標の同位角方向に num 個の配列要素に格納する. xd, yd がその円のデカルト座標での値.
subroutine product_circle( xp, yp, rad, num, xd, yd ) ! デカルト点 xp, yp から半径 rad の円を描き, その値を ! 極座標の同位角方向に num 個の配列要素に格納する. ! xd, yd がその円のデカルト座標での値. use math_const implicit none real, intent(in) :: xp ! 円の中心 x 座標 real, intent(in) :: yp ! 円の中心 y 座標 real, intent(in) :: rad ! 円の半径 integer, intent(in) :: num ! 配列要素数 real, intent(inout) :: xd(num) ! 円の x 座標データ real, intent(inout) :: yd(num) ! 円の y 座標データ integer :: i do i=1,num xd(i)=xp+rad*cos(real(i-1)*2.0*pi/real(num-1)) yd(i)=yp+rad*sin(real(i-1)*2.0*pi/real(num-1)) end do end subroutine
Subroutine : | |||
r : | real, intent(in)
| ||
t : | real, intent(in)
| ||
x : | real, intent(inout)
| ||
y : | real, intent(inout)
|
平面極座標から平面デカルト座標への変換
この場合は座標の原点が r で自動的に指定されているので, 原点を指定する引数は必要ない. 逆に返される x, y の値は, r=0 を原点とした デカルト座標系として返されることに注意する.
subroutine rt_2_xy( r, t, x, y ) ! 平面極座標から平面デカルト座標への変換 ! ! この場合は座標の原点が r で自動的に指定されているので, ! 原点を指定する引数は必要ない. ! 逆に返される x, y の値は, r=0 を原点とした ! デカルト座標系として返されることに注意する. implicit none real, intent(in) :: r ! 中心からの距離 real, intent(in) :: t ! x 軸からの角度 [rad] real, intent(inout) :: x ! x 座標 real, intent(inout) :: y ! y 座標 x=r*cos(t) y=r*sin(t) end subroutine