From e80bdd0ad53ee9e8e1addf72f8d1b73874b0e88d Mon Sep 17 00:00:00 2001 From: Tonton Th Date: Tue, 2 Jun 2026 14:37:14 +0200 Subject: [PATCH] progress on transformation matrix --- genp_tests.f90 | 7 ++----- genplotting.f90 | 21 +++++++++++++++++++++ testbed.f90 | 1 - 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/genp_tests.f90 b/genp_tests.f90 index 84fd313..75b73a3 100644 --- a/genp_tests.f90 +++ b/genp_tests.f90 @@ -22,6 +22,7 @@ subroutine genp_test_rotation() call genp_set_rotation (real(pass)*0.10) write(0, *) " * the matrix was : " call genp_get_rot_matrix(mat) + ! display the rotation matrix do i=1, 3 do j=1, 3 write (0, '(" ", F8.5)', advance='no') mat(i,j) @@ -29,13 +30,9 @@ subroutine genp_test_rotation() write(0, *) end do - call genp_move(0.0, 0.0) - pta(1) = 11.0 ; pta(2) = 0.0 ; pta(3) = 0.0 - ptb = matmul(mat, pta) - write(0, '(" got XY: ", F8.5, " ", F8.5)') ptb(1), ptb(2) - call genp_draw(ptb(1), ptb(2), 1+mod(pass, 7)) end do ! pass end subroutine ! --------------------------------------------------------- +! --------------------------------------------------------- end module diff --git a/genplotting.f90 b/genplotting.f90 index 753072a..b23c768 100644 --- a/genplotting.f90 +++ b/genplotting.f90 @@ -122,6 +122,11 @@ end subroutine subroutine genp_move (px, py) real, intent(in) :: px, py real :: lx, ly + real :: pt(3) + +! ====== insert rotation here ? + pt(1) = px ; pt(2) = py ; pt(3) = 0.0 + lx = (px*xscale) + xoffset ly = (py*yscale) + yoffset write (outunit, '(2F12.5, I5)') lx, ly, -1 @@ -135,6 +140,9 @@ subroutine genp_draw (px, py, color) real, intent(in) :: px, py integer, intent(in) :: color real :: lx, ly + +! ====== insert rotation here ? + lx = (px*xscale) + xoffset ly = (py*yscale) + yoffset write (outunit, '(2F12.5, I5)') lx, ly, color @@ -187,6 +195,18 @@ subroutine genp_circle(radius, steps, color) end subroutine ! --------------------------------------------------------- +! draw a square centered on 0,0 +subroutine genp_square (amp, color) + real, intent(in) :: amp + integer, intent(in) :: color + real :: ha + ha = amp / 2.0 + call genp_move(-ha, -ha) + call genp_draw(-ha, ha, color) + call genp_draw( ha, ha, color) + call genp_draw( ha, -ha, color) +end subroutine +! --------------------------------------------------------- subroutine genp_end (foo) integer, intent(in) :: foo @@ -194,6 +214,7 @@ subroutine genp_end (foo) write (0, '("minmax X ", 2F18.5)') xmin, xmax write (0, '("minmax Y ", 2F18.5)') ymin, ymax + ! XXX NASTY BUG HERE ! write (outunit, '(2F18.5, I6)') xmin*1.05, ymin*1.05, -1 write (outunit, '(2F18.5, I6)') xmin*1.05, ymax*1.05, 0 write (outunit, '(2F18.5, I6)') xmax*1.05, ymax*1.05, 0 diff --git a/testbed.f90 b/testbed.f90 index 4d7b43d..2c93bfa 100644 --- a/testbed.f90 +++ b/testbed.f90 @@ -12,7 +12,6 @@ program testbed call genp_init(0, "foo.scratch") call genp_test_rotation() - ! call genp_plot_axes(5.1) call genp_end(0) end program