Я пытаюсь написать 3D-изображение в фортране 90.
Код объекта, который я хочу видеть на изображении:
Вот код куба на фортране:
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
Что я пробовал:
Сначала я попытался написать код для создания изображения прямо на фортране, но оказалось, что выдаваемое изображение не является 3D-изображением, как я хотел (см. Приложение 1).
Вопрос:
Не могли бы вы объяснить мне, как просмотреть этот тип объекта в 3D, пожалуйста?
Например, следуя комментарию Владимира Ф., я скачал Paraview. Я нашел этот вопрос это очень похоже на то, где я стою сейчас.
Но я не понимаю, что именно я должен написать в файле, если я выберу запись в формате UCD. Я не нашел объяснений в Интернете и ссылку, приведенную в вопросе здесь не работает.
Приложение 1:
Вот код для 2D-изображения и для 3D-изображения, которое я пытался закодировать.
Сначала я написал 2D-изображение, которое работает. Я попытался обобщить это на 3D. Я хотел бы просмотреть объект, где mytable=1
в 3D.
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
0
пикселей прозрачные, а1
черные? - person JoA   schedule 13.02.2020