Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何从用fortran 90编写的3x3矩阵中写入3D图像?_Image_3d_Fortran_Fortran90_Post Processing - Fatal编程技术网

Image 如何从用fortran 90编写的3x3矩阵中写入3D图像?

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

我正试图用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
       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用于三维图形。