2012-01-06 2 views
-1

똑같이 간격을 둔 x, y, z 좌표로 3D 점 큐브를 생성하고 싶습니다. 필자는 Perl에서 다음 프로그램을 작성했지만 시각화하면 일부 포인트가 누락 된 것처럼 보입니다.3D 포인트 생성

for($x=0;$x<28;$x+=1.4){ 
    for($y=0;$y<28;$y+=1.4){ 
     for($z=0;$z<28;$z+=1.4){ 
      @arr_grid[$g]=$x."  ".$y."  ".$z."\n"; 
      $g++; 
     } 
    } 
} 
$c=scalar @arr_grid; 
for($l=0;$l<$c;$l++){ 
    print "HETATM  O     @arr_grid[$l]\n"; 
} 

또는 공간 및 계산에서 3D 점을 다루는 책이나 사이트를 제안 해주십시오. 미리 감사드립니다.

+1

"일부 포인트가 누락 된 것 같습니다"라는 의미는 무엇입니까? 어떻게 시각화하고 있습니까? – Nick

+0

사실은 생물 분자, 즉 생물 정보학, 바이오 정보 도구로 시각화 한 Im과 관련이 있습니다. 가능하다면 이런 종류의 물건을 읽을 곳을 말해주십시오. – gthm

+1

코드가 나에게 깨끗해 보이고 확실히 21 * 21 * 21 점이 생성됩니다. 나는이 코드에 실수가 없다고 생각한다. – Nick

답변

0

Perl 프로그래머가이 글을 쓰는 방법에 더 관심이있을 것입니다.

#!/usr/bin/perl 

use strict; 
use warnings; 
use 5.010; 

my @arr_grid; 

for (my $x = 0; $x < 28; $x += 1.4) { 
    for (my $y = 0; $y < 28; $y += 1.4) { 
    for (my $z = 0; $z < 28; $z += 1.4) { 

     push @arr_grid, "$x  $y  $z\n"; 
    } 
    } 
} 

foreach (@arr_grid) { 
    say "HETATM  O     $_"; 
} 

그러나 Nick이 말한 것처럼 Perl에서는 문제가되지 않습니다.

+0

답장을 보내 주셔서 감사합니다,하지만 내 큰 문제는 내가 다른 값으로 포인트의 동일한 세트가 있습니다 x, y, z, 두 세트의 점 사이의 거리를 계산하려면 어떻게해야합니까? – gthm

관련 문제