Image 如何从用fortran 90编写的3x3矩阵中写入3D图像?
我正试图用fortran 90编写一个3D图像 图像中所需对象的代码: 以下是fortran中多维数据集的代码:Image 如何从用fortran 90编写的3x3矩阵中写入3D图像?,image,3d,fortran,fortran90,post-processing,Image,3d,Fortran,Fortran90,Post Processing,我正试图用fortran 90编写一个3D图像 图像中所需对象的代码: 以下是fortran中多维数据集的代码: PROGRAM myimage integer xmax,ymax,zmax parameter (xmax=10,ymax=10,zmax=10) INTEGER mytable(1:xmax,1:ymax,1:zmax) do 1 i1=1,xmax do 2 i2=1,ymax
PROGRAM myimage
integer xmax,ymax,zmax
parameter (xmax=10,ymax=10,zmax=10)
INTEGER mytable(1:xmax,1:ymax,1:zmax)
do 1 i1=1,xmax
do 2 i2=1,ymax
do 3 i3=1,zmax
mytable(i1,i2,i3)=0
if ((i1.ge.3).and.(i1.le.6).and.(i2.ge.3).and.(i2.le.6).and.(i3.ge.3).and.(i3.le.6)) then
mytable(i1,i2,i3)=1
endif
3 continue
2 continue
1 continue
end
我想要的图像类型:
我想要的图像类型如下:
多维数据集将是我的像素mytable=1
,周围将是像素:mytable=0
我的尝试:
我首先尝试编写一个代码,直接用fortran制作图像,但结果证明,发布的图像并不是我想要的3D图像(见附录1)
问题:
你能给我解释一下如何在3D中查看那种类型的物体吗
例如,在Vladimir F的评论之后,我下载了Paraview。
我发现这和我现在的处境非常相似
但是如果我选择用UCD格式写,我不知道我到底要在文件中写什么。我没有在网上找到解释,问题中的链接也不起作用
附录1:
这是一个2D图像的代码,也是我试图编写的3D图像的代码
我首先写了一个2D图像,它可以工作。我试着把它推广到3D。我想在3D中查看mytable=1
的对象
subroutine image2d(mytable,xmax,ymax,zmax)
integer xmax,ymax,zmax,mytable(1:xmax,1:ymax,1:zmax)
character*15 fname
WRITE(fname,'(a)')'myimage2d.ppm'
open (100,file=fname,form='formatted')
write(100,'(a)') 'P3'
write(100,*) '#'
write(100,*) xmax,ymax
write(100,*) 2
do 10 i10=1,xmax
do 20 i20=1,ymax
if (mytable(i10,i20,5).eq.0) then
write(100,*) '2 2 2'
else if (mytable(i10,i20,5).eq.1) then
write(100,*) '0 0 0'
end if
20 continue
10 continue
end
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine image3d(mytable,xmax,ymax,zmax)
integer xmax,ymax,zmax,mytable(1:xmax,1:ymax,1:zmax)
character*15 fname
WRITE(fname,'(a)')'myimage3d.ppm'
open (200,file=fname,form='formatted')
write(200,'(a)') 'P3'
write(200,*) '#'
write(200,*) xmax,ymax,zmax
write(200,*) 3
do 11 i10=1,xmax
do 21 i20=1,ymax
do 31 i30=1,ymax
if (mytable(i10,i20,i30).eq.0) then
write(200,*) '2 2 2'
else if (mytable(i10,i20,i30).eq.1) then
write(200,*) '0 1 2'
end if
31 continue
21 continue
11 continue
end
“3D图像”是什么意思?我就是不明白。3D文件格式的文档在哪里?哪里有人说GIMP应该能够打开这样一个3D文件?我正在尝试制作一个3D中看到的物体的图像。但是我必须说我没有找到任何关于如何做的文档。我刚刚看到,在一些文章中,人们使用Fortran制作了一个矩阵图像,其中
0
像素是透明的,1
是黑色的,你知道如何制作这个矩阵图像吗?这是一个无望的努力。首先你必须决定一些文件格式。您需要了解一些可以可视化数据的工具。唉,在Paraview中,您甚至可以打开一个包含x、y、z和其他值数据的文本文件。您可以在Excel、Fortran或任何地方生成数据,但您必须先了解数据,然后再尝试编程。试试互联网上的一些例子。或者,如果需要二维曲面,请阅读有关网格文件格式的信息。像STL、OFF、OBJ和许多其他用于3D打印的格式。如果你知道的话,你可能想尝试使用python。您可以将VPython用于三维图形。