2016-12-05 6 views
1

이전 연습과 마찬가지로 문자 W로 큐브를 배열합니다. 최종 결과를 시각화하는 데 어려움이 있다면 다시 생각해보십시오. 모든 큐브를 픽셀로 만들어 'W'의 스프라이트를 만듭니다. MEL (마야) - W 형 큐브 정렬이 점에서 교차하지 않음

나는 각 스트로크가 편지를 만들기 위해 내 코드 1의 4 개 섹션을 생성하지만, 각 2는 같은 '루트 점'이 있습니다
file -f -new; 

//Specifies starting coordinates 

int $xpnt1 = 5.5; 
int $xpnt2 = -5.5; 

////////////////// 

for($i=1;$i<=25;$i++) { //BRANCH 1, POINT 1, DIR L 
    polyCube; 
    move -ws $xpnt1 0 0; 
    //select "pCube1"; 
    move -r ($i*1) ($i*1) 0; 
    move -r $xpnt1 0 0 pCube1.scalePivot; 
    } 
for($i=1;$i<=25;$i++) {//BRANCH 2, POINT 1, DIR R 
    polyCube; 
    move -ws $xpnt1 0 0; 
    //select "pCube26"; 
    move -r ($i*-1) ($i*1) 0; 
    move -r $xpnt1 0 0 pCube26.scalePivot; 
    } 
for($i=1;$i<=25;$i++) {//BRANCH 3, POINT 2, DIR L 
    polyCube; 
    move -ws $xpnt2 0 0; 
    //select "pCube51"; 
    move -r ($i*1) ($i*1) 0; 
    move -r $xpnt2 0 0 pCube51.scalePivot; 
    } 
for($i=1;$i<=25;$i++) { //BRANCH 4, POINT 2, DIR R 
    polyCube; 
    move -ws $xpnt2 0 0; 
    //select "pCube76"; 
    move -r ($i*-1) ($i*1) 0; 
    move -r $xpnt2 0 0 pCube76.scalePivot; 
    } 

지금까지 내가 얻을 수있었습니다 내가 원하는 방식으로 큐브를 생성합니다. 여기서 주요한 문제는 잘못 나온 것입니다 : 각 공유 중 2 개가 시작 좌표로 5.5 또는 -5.5 임에도 불구하고 프로그램으로 보이는 것으로 간격을두고 끝납니다 : this is the current result. 내가 누락되거나 무시할 수있는 것 그게이 문제의 원인인가요?

나는 깨달으십시오. 5.5/-5.5는 정확한 W를 만들어 내지 않을 것입니다. 나는이 토양을 이용하여 가시가있는베이스 큐브를 조사하여 동일한 공간을 차지할 것입니다.

답변

1

for 루프의 부분을 for($i=1;$i<=25;$i++)에서 for($i=0;$i<25;$i++)으로 이동하면 틈이 없어집니다.

이전에 $ i = 1로 시작한 루프는 첫 번째 반복에서 move -r ($i*±1) ($i*±1) 0;이있는 행이 첫 번째 블록을 시작 좌표에서 1 개의 대각선으로 이동한다는 것을 의미했습니다.

각 분기의 첫 번째 블록을 시작 좌표에서 이동하지 않으려면 move -r ($i*±1) ($i*±1) 0; 행이 첫 번째 반복에서 효과가 없기를 바란다. 이 문제를 해결하기 위해 첫 번째 반복에서 $ i를 0으로 설정하면 첫 번째 블록에 대해 라인이 move -r 0 0 0;이됩니다.

그리고 마지막으로 각 분기마다 25 개의 블록이 있어야하므로 For 루프의 종료 조건은 $i<=25에서 $i<25으로 변경되어 시작시 전환이 발생하는 것으로 간주됩니다. 여기

는 (. 변경 유일한 루프 4의 각각에 대한 조건이다) 코드가

file -f -new; 

//Specifies starting coordinates 

int $xpnt1 = 5.5; 
int $xpnt2 = -5.5; 

////////////////// 

for($i=0;$i<25;$i++) { //BRANCH 1, POINT 1, DIR L 
    polyCube; 
    move -ws $xpnt1 0 0; 
    //select "pCube1"; 
    move -r ($i*1) ($i*1) 0; 
    move -r $xpnt1 0 0 pCube1.scalePivot; 
    } 
for($i=0;$i<25;$i++) {//BRANCH 2, POINT 1, DIR R 
    polyCube; 
    move -ws $xpnt1 0 0; 
    //select "pCube26"; 
    move -r ($i*-1) ($i*1) 0; 
    move -r $xpnt1 0 0 pCube26.scalePivot; 
    } 
for($i=0;$i<25;$i++) {//BRANCH 3, POINT 2, DIR L 
    polyCube; 
    move -ws $xpnt2 0 0; 
    //select "pCube51"; 
    move -r ($i*1) ($i*1) 0; 
    move -r $xpnt2 0 0 pCube51.scalePivot; 
    } 
for($i=0;$i<25;$i++) { //BRANCH 4, POINT 2, DIR R 
    polyCube; 
    move -ws $xpnt2 0 0; 
    //select "pCube76"; 
    move -r ($i*-1) ($i*1) 0; 
    move -r $xpnt2 0 0 pCube76.scalePivot; 
    } 

Here is an image of what it now looks like 예상대로 시작 좌표에서 두 블록이있다.

+0

나는 내 설명에서 조금 길었던 것 같아요. 그 경우 알려주십시오. –

+0

나는 또한 질문을 편집하고 내가 몇 번 읽었을 때 제가 해결 한 몇 가지 사항을 추가했습니다 - 처음에 이해하지 못했던 몇 가지 사항 만 있습니다. (나는 당신의 질문에 대해서 언급 할 것이지만 충분하지는 않습니다.) 만약 내가 헷갈리는 것을 얻었 으면, 저에게도 알려주십시오. –

+0

아, 나는 편집이 도움이되고 다른 사람들이 일하는 데 시간을 절약 할 수 있다는 의미지만 '트위터는 승인되지 않았습니다. 나는 내가 독서에서 이해 한 것을 설명하려고 노력하고 있었다고 생각한다. 처음에는 너무 적었고, 두 번째로 너무 많았습니다. 나는 그것을 지금 당장 떠날 것 같다. –