Ciao a tutti.
Mi sto cimentando nella costruzione di un oggetto che mi servirà per lo sviluppo di altri oggetti ...
trattasi di una polilinea dinamica per mezzo di hotspot ...
In sostanza vorrei fare in modo che cliccando sull'hotspot nella mezzeria di ciascun segmento costituente la polilinea si aggiunga un altro nodo alla polilinea mantenendo fermi tutti quelli precedentemente definiti ...
Per capire un po' meglio potete vedere il video relativo al rivestimento muri in questo link
http://4dlibrary.com.au/library/downloads/Di segutio riporto il codice ...
non riesco ad ottenere il risultato ...
forse mi manca qualche nozione sugli hotspot2 ... credo si faccia confusione tra le coordinate dei vari vertici ...
L'oggetto è molto importante per futuri sviluppi di oggetti basati su poligoni editabili.
unid=0
pen 41
line_property 0
for I=1 TO nv
unid=unid+1: hotspot2 0,vertici[i][2],unid,vertici[i][1],129
unid=unid+1: hotspot2 vertici[i][1],vertici[i][2],unid,vertici[i][1],2
unid=unid+1: hotspot2 -1,vertici[i][2],unid,vertici[i][1],3
unid=unid+1: hotspot2 vertici[i][1],0,unid,vertici[i][2],129
unid=unid+1: hotspot2 vertici[i][1],vertici[i][2],unid,vertici[i][2],2
unid=unid+1: hotspot2 vertici[i][1],-1,unid,vertici[i][2],3
if i>=2 then
verticim[i-1][1] =(vertici[i][1]+vertici[i-1][1])/2
verticim[i-1][2] =(vertici[i][2]+vertici[i-1][2])/2
unid=unid+1: hotspot2 verticim[i-1][1],verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],129
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],2
unid=unid+1: hotspot2 verticim[i-1][1]-1,verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],3
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2],unid,deltay[i-1],129
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]+deltay[i-1],unid,deltay[i-1],2
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]-1,unid,deltay[i-1],3
if deltax[i-1]<>0 or deltay[i-1]<>0 then
! if glob_modpar_name = "deltax" or glob_modpar_name= "deltay" then
nv=nv+1
vertici[i+1][1]=vertici[i][1]
vertici[i+1][2]=vertici[i][2]
vertici[i][1]=verticim[i-1][1]+deltax[i-1]
vertici[i][2]=verticim[i-1][2]+deltay[i-1]
deltax[i-1]=0
deltay[i-1]=0
verticim[i-1][1] =(vertici[i][1]+vertici[i-1][1])/2
verticim[i-1][2] =(vertici[i][2]+vertici[i-1][2])/2
unid=unid+1: hotspot2 verticim[i-1][1],verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],129
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],2
unid=unid+1: hotspot2 verticim[i-1][1]-1,verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],3
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2],unid,deltay[i-1],129
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]+deltay[i-1],unid,deltay[i-1],2
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]-1,unid,deltay[i-1],3
i=i+1
deltax[i-1]=0
deltay[i-1]=0
verticim[i-1][1] =(vertici[i][1]+vertici[i-1][1])/2
verticim[i-1][2] =(vertici[i][2]+vertici[i-1][2])/2
unid=unid+1: hotspot2 verticim[i-1][1],verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],129
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],2
unid=unid+1: hotspot2 verticim[i-1][1]-1,verticim[i-1][2]+deltay[i-1],unid,deltax[i-1],3
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2],unid,deltay[i-1],129
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]+deltay[i-1],unid,deltay[i-1],2
unid=unid+1: hotspot2 verticim[i-1][1]+deltax[i-1],verticim[i-1][2]-1,unid,deltay[i-1],3
i=0
endif
endif
next i
for i=1 to nv-1
line2 vertici[i][1],vertici[i][2],vertici[i+1][1],vertici[i+1][2]
text2 vertici[i][1],vertici[i][2],str("%0.0",i)+": "+str("%0.2",vertici[i][1])+","+str("%0.2",vertici[i][2])
circle2 vertici[i][1],vertici[i][2],0.1
next i
text2 vertici[i][1],vertici[i][2],str("%0.0",i)+": "+str("%0.2",vertici[i][1])+","+str("%0.2",vertici[i][2])
circle2 vertici[i][1],vertici[i][2],0.1
hotspot2 0,0
text2 0,0,nv