HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Costruire PGON forati  (Letto 1521 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
Costruire PGON forati
« il: 20 Luglio 2012, 19:10 »
E’ possibile inserire fori in talune forme predisposte, come EXTRUDE in 2D o POLY2_ in 3D, utilizzando il valore di stato -1 alla chiusura del poligono antiorario esterno, per poi elencare i vertici del poligono orario interno, corrispondente al foro stesso, che andrà ancora chiuso a sua volta con il valore -1, ripetendo le coordinate del vertice di partenza.  Non è invece possibile costruire in questo modo una primitiva basata sui poligoni  PGON.
Infatti la forma PGON deve sempre essere costituita da un unico percorso (antiorario dall’esterno del corpo). E’ tuttavia possibile costruire un percorso interno utilizzando un EDGE di collegamento tra curva interna e quella esterna. Questo EDGE verrà percorso nei due sensi e potrà essere reso invisibile ponendo il valore 1 nell’ultima variabile, che corrisponde al suo stato .
Per chiarire con un esempio costruisco un anello bidimensionale su xy, ovvero due circonferenze concentriche, con centro in O.

r1=2   !raggio maggiore
r2=1   !raggio minore
n=36    !numero punti per circonferenza

for i=0 to n-1
VERT    r1*cos(360/n*i), r1*sin(360/n*i),0
next i
!#n punti su circonferenza antioraria esterna, partenza da  (r1,0,0) per j=0
for i=0 to n-1
VERT    r2*cos(-360/n*i), r2*sin(-360/n*i),0
next i
! #n punti su circonferenza oraria interna, partenza da  (r2,0,0) per j=0
for i=1 to n-1
EDGE      i, i+1,         -1,-1,0
next i
EDGE     n, 1,            -1,-1,0
! l'utimo segmento si ricollega al primo punto: #n edges
!fine crf esterna
EDGE     1, n+1,            -1,-1,1
!edge di collegamento con crf interna
!inizio crf interna
for i=1 to n-1
EDGE      i+n, i+1+n,         -1,-1,0
!si aggiungono n punti, rispetto lo script della crf maggiore
next i
EDGE     2*n, 1+n,            -1,-1,0
! l'utimo segmento si ricollega al primo punto della crf: #n edges
!totali 2*n+1 edges
for i=1 to 2*n+1
put i
next i
!memorizza gli indici di tutti gli edges, secondo l'ordine
PGON  2*n+2,   0, -1,    get (nsp), -(n+1)
! -(n+1) è l'edge di collegamento invertito di senso.

Come esempi di applicazione del concetto allego:
Foro non passante.gsm
Foro passante.gsm
pgon 4 fori separato.gsm