winter is coming
This commit is contained in:
parent
098b12cd61
commit
462d24b717
@ -1,46 +1,92 @@
|
||||
program essai
|
||||
use usegenplot
|
||||
|
||||
use pixrgb
|
||||
implicit none
|
||||
|
||||
integer :: foo, bar
|
||||
integer :: nbarg
|
||||
integer :: numframe = 0
|
||||
integer :: param0 = 10
|
||||
character(len=256) :: arg
|
||||
|
||||
! write(0, *) "------------ essai graf anim ---------------"
|
||||
! integer :: foo, bar
|
||||
|
||||
integer :: width = 512
|
||||
integer :: height = 342
|
||||
integer :: seqnum
|
||||
real :: nclock, kx, ky
|
||||
character (len=280) :: filename
|
||||
|
||||
type(t_pixrgb), allocatable :: pix(:,:)
|
||||
|
||||
write(0, *) "--------- essai FLUFFYWAVES ------------"
|
||||
|
||||
nbarg = IARGC()
|
||||
if (nbarg .GT. 0) then
|
||||
call GETARG(1, arg)
|
||||
! write (0, '(A40, A5)') "argument = ", arg
|
||||
read (arg, *) numframe
|
||||
read (arg, *) param0
|
||||
endif
|
||||
|
||||
write(0, '(A20, I5)') "frame number =", numframe
|
||||
allocate(pix(width, height))
|
||||
|
||||
call init_genplot("essai.genplot")
|
||||
call do_frame(7)
|
||||
do seqnum = 0, param0
|
||||
nclock = float(seqnum) / float(param0)
|
||||
call rgbpix_set_to_rgb(pix, 0, 0, 0)
|
||||
|
||||
call gplt_setcol(2)
|
||||
kx = nclock * 0.35 * sin(nclock * 7.0)
|
||||
ky = nclock * 0.95 * cos(nclock * 7.0)
|
||||
call iterator (pix, kx, ky, 50000)
|
||||
|
||||
bar = (numframe * 20) - 120
|
||||
do foo=20, 620, 50
|
||||
call gplt_line(foo, 20, bar, 460)
|
||||
call gplt_line(bar, 20, foo, 460)
|
||||
write (filename, "(a, i5.5, a)") "./F/np/", seqnum, ".pnm"
|
||||
write(0, *) seqnum, kx, ky, trim(filename)
|
||||
call rgbpix_spit_as_pnm_16(pix, trim(filename))
|
||||
enddo
|
||||
|
||||
call end_genplot("done for today")
|
||||
contains
|
||||
! ----------------------------------------------------------
|
||||
!-
|
||||
subroutine setpixel(pic, x, y)
|
||||
implicit none
|
||||
type(t_pixrgb), intent(inout) :: pic(:,:)
|
||||
real, intent(in) :: x, y
|
||||
|
||||
contains !------------------------------------------
|
||||
integer :: ix, iy
|
||||
|
||||
subroutine do_frame(color)
|
||||
integer, intent(in) :: color
|
||||
integer :: savecol
|
||||
ix = 600 - int (300.0 * x)
|
||||
iy = 600 - int (300.0 * y)
|
||||
|
||||
savecol = gplt_getcol()
|
||||
call gplt_setcol(color)
|
||||
call gplt_rect(0, 0, 640, 480)
|
||||
call gplt_setcol(savecol)
|
||||
! print *, ix, iy
|
||||
|
||||
if ( (ix .gt. lbound(pic, 1)) .and. (ix .lt. ubound(pic, 1)) &
|
||||
.and. &
|
||||
(iy .gt. lbound(pic, 2)) .and. (iy .lt. ubound(pic, 2)) ) &
|
||||
then
|
||||
pic(ix, iy)%g = 65000
|
||||
pic(ix, iy)%b = 20000
|
||||
else
|
||||
! XXX write(0, *) 'out', ix, iy
|
||||
endif
|
||||
|
||||
end subroutine
|
||||
|
||||
! ----------------------------------------------------------
|
||||
!-
|
||||
subroutine iterator(img, x0, y0, nbi)
|
||||
implicit none
|
||||
type(t_pixrgb), intent(inout) :: img(:,:)
|
||||
real, intent(in) :: x0, y0
|
||||
integer, intent(in) :: nbi
|
||||
real :: xa, ya, xb, yb
|
||||
integer :: bcl
|
||||
|
||||
xa = x0 ; ya = y0
|
||||
|
||||
do bcl=0, nbi
|
||||
xb = xa - 0.4 * sin ( ya + sin( 0.4 * ya ) )
|
||||
yb = ya - 0.4 * sin ( xa + sin( -2 * xa ) )
|
||||
call setpixel(img, xb, yb)
|
||||
xa = xb
|
||||
ya = yb
|
||||
enddo
|
||||
|
||||
end subroutine
|
||||
|
||||
|
@ -8,7 +8,7 @@ GFOPT = -Wall -Wextra -g -I.
|
||||
|
||||
all: chkpixels trnd t
|
||||
|
||||
# -----------------------------------------------
|
||||
# ---------------------------------------------------------
|
||||
|
||||
spitpgm.o: spitpgm.f90 Makefile
|
||||
gfortran $(GFOPT) -c $<
|
||||
@ -31,8 +31,7 @@ mathstuff2.o: mathstuff2.f90 Makefile
|
||||
noisepictures.o: noisepictures.f90 Makefile
|
||||
gfortran $(GFOPT) -c $<
|
||||
|
||||
|
||||
#
|
||||
#----------------------------------------------------------
|
||||
# making a fluffy archive
|
||||
#
|
||||
OBJECTS = spitpgm.o pixrgb.o \
|
||||
@ -43,7 +42,7 @@ OBJECTS = spitpgm.o pixrgb.o \
|
||||
libtth90modules.a: $(OBJECTS) Makefile
|
||||
$(AR) rs $@ $?
|
||||
|
||||
#
|
||||
#----------------------------------------------------------
|
||||
# programmes de testouille
|
||||
#
|
||||
|
||||
|
@ -85,20 +85,23 @@ subroutine noise_range_rgb16_pic(prgb, rngs, nbre)
|
||||
type(t_pixrgb), dimension(:,:), intent(inout) :: prgb
|
||||
integer, intent(in) :: rngs(6)
|
||||
integer, intent(in) :: nbre
|
||||
integer :: quux, ix, iy, width, height
|
||||
integer :: foo, ix, iy
|
||||
|
||||
print *, 'noise rgb16 range', nbre
|
||||
print *, 'ranges:'
|
||||
print *, rngs
|
||||
! print *, 'noise rgb16 range', nbre
|
||||
! print *, 'rngs', rngs
|
||||
|
||||
width = ubound(prgb, 1) ; height = ubound(prgb, 2)
|
||||
do foo = 1, nbre
|
||||
ix = 1 + mod ( irand(), ubound(prgb, 1) )
|
||||
iy = 1 + mod ( irand(), ubound(prgb, 2) )
|
||||
prgb(ix, iy)%r = rngs(1) + mod(irand(), rngs(2) - rngs(1))
|
||||
|
||||
do quux=1, nbre
|
||||
ix = 1 + mod ( irand(), width )
|
||||
iy = 1 + mod ( irand(), height )
|
||||
prgb(ix, iy)%r = mod ( irand(), 65536 )
|
||||
prgb(ix, iy)%g = mod ( irand(), 65536 )
|
||||
prgb(ix, iy)%b = mod ( irand(), 65536 )
|
||||
ix = 1 + mod ( irand(), ubound(prgb, 1) )
|
||||
iy = 1 + mod ( irand(), ubound(prgb, 2) )
|
||||
prgb(ix, iy)%g = rngs(3) + mod(irand(), rngs(4) - rngs(3))
|
||||
|
||||
ix = 1 + mod ( irand(), ubound(prgb, 1) )
|
||||
iy = 1 + mod ( irand(), ubound(prgb, 2) )
|
||||
prgb(ix, iy)%b = rngs(5) + mod(irand(), rngs(6) - rngs(5))
|
||||
enddo
|
||||
|
||||
end subroutine
|
||||
|
@ -11,9 +11,9 @@ program essai
|
||||
write(0, *) "----------------- essai -------------------"
|
||||
|
||||
call init_random_seed() ! in module 'mathstuff'
|
||||
call test_noisepictures_rgb()
|
||||
! call test_noisepictures_rgb()
|
||||
call test_noisepictures_rgb_range()
|
||||
call test_noisepictures_gray()
|
||||
! call test_noisepictures_gray()
|
||||
|
||||
contains
|
||||
!-----------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user