Compare commits
2 Commits
da56a6d0c0
...
b707b784bf
Author | SHA1 | Date | |
---|---|---|---|
|
b707b784bf | ||
|
0e73e47272 |
2
Fraktalism/.gitignore
vendored
2
Fraktalism/.gitignore
vendored
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
mkjulia
|
mkjulia
|
||||||
pickover
|
pickover
|
||||||
lorentz
|
mklorentz
|
||||||
mkmandel
|
mkmandel
|
||||||
voxelize
|
voxelize
|
||||||
evolvopick
|
evolvopick
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
all: voxelize evolvopick pickover mkjulia lorentz essai \
|
all: essai voxelize evolvopick pickover \
|
||||||
mkmandel
|
mkjulia mklorentz mkmandel
|
||||||
|
|
||||||
GFOPT = -Wall -Wextra -time -g -Imods/ -I../Modules
|
GFOPT = -Wall -Wextra -time -g -Imods/ -I../Modules
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ evolvopick: evolvopick.f90 Makefile $(OBJDEP)
|
|||||||
voxelize: voxelize.f90 Makefile $(OBJDEP)
|
voxelize: voxelize.f90 Makefile $(OBJDEP)
|
||||||
gfortran $(GFOPT) $< $(OBJS) -o $@
|
gfortran $(GFOPT) $< $(OBJS) -o $@
|
||||||
|
|
||||||
lorentz: lorentz.f90 Makefile $(OBJDEP)
|
mklorentz: mklorentz.f90 Makefile $(OBJDEP)
|
||||||
gfortran $(GFOPT) $< $(OBJS) -o $@
|
gfortran $(GFOPT) $< $(OBJS) -o $@
|
||||||
|
|
||||||
mkmandel: mkmandel.f90 Makefile $(OBJDEP)
|
mkmandel: mkmandel.f90 Makefile $(OBJDEP)
|
||||||
@ -61,8 +61,8 @@ mkmandel: mkmandel.f90 Makefile $(OBJDEP)
|
|||||||
|
|
||||||
# ---------------------------------------------
|
# ---------------------------------------------
|
||||||
|
|
||||||
lorentz.pgm: lorentz Makefile
|
lorentz.pgm: mklorentz Makefile
|
||||||
./lorentz $@ > /dev/null
|
./mklorentz $@ > /dev/null
|
||||||
|
|
||||||
pickover.pgm: pickover Makefile
|
pickover.pgm: pickover Makefile
|
||||||
./pickover $@ > /dev/null
|
./pickover $@ > /dev/null
|
||||||
|
@ -12,13 +12,34 @@ SDIR="$1"
|
|||||||
FNAME="$2"
|
FNAME="$2"
|
||||||
echo "Encoding from " $SDIR " to " $FNAME
|
echo "Encoding from " $SDIR " to " $FNAME
|
||||||
|
|
||||||
|
#
|
||||||
|
# trying to guess the format of inoput files
|
||||||
|
#
|
||||||
|
firstfile=$(ls -1 $SDIR/* | head -1)
|
||||||
|
echo "first file :" $firstfile
|
||||||
|
filetype=$(file $firstfile | awk '{ print $2 }')
|
||||||
|
echo "file type :" $filetype
|
||||||
|
|
||||||
|
#
|
||||||
|
# this is BOGUS, replace file by identify ?
|
||||||
|
#
|
||||||
|
case $filetype in
|
||||||
|
PNG) extension=".png" ;;
|
||||||
|
Netpbm) extension=".pgm" ;;
|
||||||
|
*) extension=".binary" ;;
|
||||||
|
esac
|
||||||
|
echo "extension :" $extension
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TITLE='---{ experimental }---'
|
TITLE='---{ experimental }---'
|
||||||
|
|
||||||
ffmpeg -nostdin \
|
ffmpeg -nostdin \
|
||||||
-loglevel warning \
|
-loglevel warning \
|
||||||
-y -r 25 -f image2 -i $SDIR/%05d.png \
|
-y -r 30 -f image2 -i $SDIR/%05d.pnm \
|
||||||
-metadata artist='---{ tTh }---' \
|
-metadata artist='---{ tTh }---' \
|
||||||
-metadata title="${TITLE}" \
|
-metadata title="${TITLE}" \
|
||||||
|
-preset veryslow \
|
||||||
-c:v libx264 -pix_fmt yuv420p \
|
-c:v libx264 -pix_fmt yuv420p \
|
||||||
$FNAME
|
$FNAME
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ subroutine simple_julia(pic, cx, cy, maxiter)
|
|||||||
integer, intent(in) :: maxiter
|
integer, intent(in) :: maxiter
|
||||||
|
|
||||||
integer :: ix, iy, width, height
|
integer :: ix, iy, width, height
|
||||||
real :: fx, fy, fv
|
real :: fx, fy
|
||||||
complex :: Z, C
|
complex :: Z, C
|
||||||
integer :: iter
|
integer :: iter
|
||||||
logical :: over_iter
|
logical :: over_iter
|
||||||
@ -49,4 +49,49 @@ subroutine simple_julia(pic, cx, cy, maxiter)
|
|||||||
|
|
||||||
end subroutine simple_julia
|
end subroutine simple_julia
|
||||||
!===============================================================
|
!===============================================================
|
||||||
|
subroutine julia_colormapped(pic, cx, cy, maxiter)
|
||||||
|
use pixrgb
|
||||||
|
type(t_pixrgb), intent(inout), dimension (:,:) :: pic
|
||||||
|
real, intent(in) :: cx, cy
|
||||||
|
integer, intent(in) :: maxiter
|
||||||
|
|
||||||
|
integer :: ix, iy, width, height
|
||||||
|
real :: fx, fy
|
||||||
|
complex :: Z, C
|
||||||
|
integer :: iter
|
||||||
|
logical :: over_iter
|
||||||
|
|
||||||
|
width = ubound(pic, 1)
|
||||||
|
height = ubound(pic, 2)
|
||||||
|
C = complex(cx, cy)
|
||||||
|
print *, "Color julia, const = ", C
|
||||||
|
do ix = 1, width
|
||||||
|
fx = (float(ix) / (float(width*2)/4.0) - 1.0)
|
||||||
|
do iy = 1, height
|
||||||
|
fy = (float(iy) / (float(height*2)/4.0) - 1.0)
|
||||||
|
! ------ traitement du pixel
|
||||||
|
iter = 0 ; over_iter = .FALSE.
|
||||||
|
Z = complex(fx, fy)
|
||||||
|
do while ((real(Z)*real(Z) + imag(Z)*imag(Z)) .LT. 4.0)
|
||||||
|
Z = (Z * Z) + C
|
||||||
|
iter = iter + 1
|
||||||
|
if (iter .GE. maxiter) then
|
||||||
|
over_iter = .TRUE.
|
||||||
|
exit
|
||||||
|
endif
|
||||||
|
end do
|
||||||
|
if (over_iter) then
|
||||||
|
pic(ix, iy)%r = 0
|
||||||
|
pic(ix, iy)%g = mod(abs(int(real(Z) *140)), 255)
|
||||||
|
pic(ix, iy)%b = mod(abs(int(aimag(Z)*140)), 255)
|
||||||
|
else
|
||||||
|
pic(ix, iy)%r = mod(iter*33, 255)
|
||||||
|
pic(ix, iy)%g = mod(iter*29, 255)
|
||||||
|
pic(ix, iy)%b = mod(iter*21, 255)
|
||||||
|
endif
|
||||||
|
enddo ! iy
|
||||||
|
enddo ! ix
|
||||||
|
|
||||||
|
end subroutine
|
||||||
|
!===============================================================
|
||||||
end module
|
end module
|
||||||
|
@ -8,10 +8,11 @@ program julia
|
|||||||
|
|
||||||
use spitpgm
|
use spitpgm
|
||||||
use JULIAS
|
use JULIAS
|
||||||
|
use PIXRGB
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
integer, dimension(640, 480) :: picz
|
type(t_pixrgb), allocatable :: picz(:,:)
|
||||||
integer :: argc
|
integer :: argc
|
||||||
character(200) :: filename, string
|
character(200) :: filename, string
|
||||||
real :: cx, cy
|
real :: cx, cy
|
||||||
@ -25,8 +26,10 @@ program julia
|
|||||||
call getarg(2, string) ; read (string, *) cx
|
call getarg(2, string) ; read (string, *) cx
|
||||||
call getarg(3, string) ; read (string, *) cy
|
call getarg(3, string) ; read (string, *) cy
|
||||||
|
|
||||||
call simple_julia(picz, cx, cy, 3500)
|
allocate(picz(640, 480))
|
||||||
call spit_as_pgm_8(picz, trim(filename))
|
|
||||||
|
call julia_colormapped(picz, cx, cy, 500)
|
||||||
|
call rgbpix_spit_as_pnm_8(picz, trim(filename))
|
||||||
|
|
||||||
end program
|
end program
|
||||||
|
|
||||||
|
@ -14,20 +14,23 @@ fi
|
|||||||
#
|
#
|
||||||
# run the prog
|
# run the prog
|
||||||
#
|
#
|
||||||
for foo in $(seq 0 99)
|
workdir="frames/julia/"
|
||||||
|
for foo in $(seq 0 179)
|
||||||
do
|
do
|
||||||
|
|
||||||
img=$(printf "frames/julia/%05d.pgm" $foo)
|
img=$(printf "%s/%05d.pnm" $workdir $foo)
|
||||||
bar=$(echo "$foo / 247.0" | bc -l)
|
bar=$(echo "$foo / 247.0" | bc -l)
|
||||||
cx=$(echo "0.7 * (2.72*c($foo/3))" | bc -l)
|
cx=$(echo "0.5 * (1.52*c($foo/28.0))" | bc -l)
|
||||||
cy=$(echo "0.5 * (1.45+s($foo/2))" | bc -l)
|
cy=$(echo "0.5 * (1.45*s($foo/17.0))" | bc -l)
|
||||||
|
|
||||||
./mkjulia $img $cx $cy
|
./mkjulia $img $cx $cy
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
./tagpicz.sh $workdir
|
||||||
|
|
||||||
echo ; echo "Encoding, please wait..."
|
echo ; echo "Encoding, please wait..."
|
||||||
|
|
||||||
convert -delay 10 frames/julia/*.pgm foo.gif
|
convert -delay 10 $workdir/*.pnm color-julia.gif
|
||||||
# animate foo.gif &
|
# animate foo.gif &
|
||||||
|
|
||||||
|
31
Fraktalism/mklorentz.f90
Normal file
31
Fraktalism/mklorentz.f90
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
!
|
||||||
|
! this is the main programm
|
||||||
|
!
|
||||||
|
!-----------------------------------------------------
|
||||||
|
|
||||||
|
program lorentz
|
||||||
|
|
||||||
|
use spitpgm
|
||||||
|
use fraktals
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
integer, dimension(800, 600) :: picz
|
||||||
|
integer :: argc
|
||||||
|
character(200) :: filename
|
||||||
|
|
||||||
|
argc = IARGC()
|
||||||
|
if (1 .NE. argc) then
|
||||||
|
STOP ": MKLORENTZ NEED A FILENAME !"
|
||||||
|
endif
|
||||||
|
|
||||||
|
call getarg(1, filename)
|
||||||
|
|
||||||
|
write (0, "(A)") "Mk Lorentz -> "//trim(filename)
|
||||||
|
|
||||||
|
call lorentz_0(picz, 50000)
|
||||||
|
call spit_as_pgm_8(picz, trim(filename))
|
||||||
|
|
||||||
|
end program
|
||||||
|
|
||||||
|
!-----------------------------------------------------
|
27
Fraktalism/tagpicz.sh
Executable file
27
Fraktalism/tagpicz.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# THIS IS JUST A QUICK'N'DIRTY HACK !
|
||||||
|
# DO NOT USE IT IN REAL LIFE !
|
||||||
|
#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SDIR="frames/spool/"
|
||||||
|
if [ $# -eq 1 ] ; then
|
||||||
|
SDIR="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for img in $SDIR/*.pnm
|
||||||
|
do
|
||||||
|
|
||||||
|
mogrify \
|
||||||
|
-gravity South-East \
|
||||||
|
-font Courier \
|
||||||
|
-pointsize 12 \
|
||||||
|
-fill Yellow \
|
||||||
|
-annotate +10+10 "tTh 2023" \
|
||||||
|
$img
|
||||||
|
echo "tagging " $img
|
||||||
|
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user