Files
GenPlotting90/starfield.f90
2026-04-25 13:12:16 +02:00

42 lines
1.2 KiB
Fortran

!
! BUILD A STAR FIELD
!
program starfield
use genplotting
implicit none
write (0, '(A)') "----[ genplotting starfield ]----"
call genp_init (0, 'WS/starfield.scratch')
call do_starfield (451)
call genp_end (0)
contains
! ---------------------------------------------------------
subroutine plot_a_star(at_x, at_y, sz, color)
real, intent(in) :: at_x, at_y, sz
integer, intent(in) :: color
integer :: idx
real :: rad, xv, yv
write(0, '("plot a star ", 2F8.3)') at_x, at_y
call genp_set_offset(at_x, at_y)
do idx=0, 360, 36
rad = 0.042 + (real(idx) * (3.14159 / 180))
xv = sz * sin(rad) ; yv = sz * cos(rad)
call genp_move(0.0, 0.0)
call genp_draw(xv, yv, color)
enddo
end subroutine
! ---------------------------------------------------------
subroutine do_starfield (nbstar)
integer, intent(in) :: nbstar
integer idx, color
real px, py, sz
do idx=1, nbstar
px = (rand(0) * 10.00) - 5.00
py = (rand(0) * 10.00) - 5.00
sz = (rand(0) * 0.16) + 0.16
color = 1 + mod(idx, 7)
call plot_a_star(px, py, sz, color)
end do
end subroutine
! ---------------------------------------------------------
end program