Buongiorno,
Ho il seguente problema e non riesco a capire dove sia l'errore. Ho definito una funzione che mi disegna un triangolo e poi lo ruota sulla base di un orientamento che viene passato come parametro.
Ho provato con uno script inserendo direttamente dei gradi come parametro ed effettivamente la figura ruota, ma quando richiamo invece la funzione il triangolo non viene ruotato.
La funzione è la seguente:
function area_safe = area_safe(fig,xx_u,orientamento,ambiente)
dist1 = 0.15;
dist2 = 0.87;
ambiente = polyshape([-0.5 0.5 0.5 -0.5],[-0.5 -0.5 0.5 0.5]);
area_safe1 = polyshape({[xx_u(1)-dist2 xx_u(1) xx_u(1)+dist2]},{[xx_u(2)+dist1 xx_u(2) xx_u(2)+dist1]});
area_safe2 = rotate(area_safe1,orientamento,[xx_u(1) xx_u(2)]);
hold on
area_safe = intersect(ambiente,area_safe2) ;
end
Sto verificando se il problema sia quindi nel resto del codice. Il valore dell'orientamento è contenuto in una matrice (in particolare devo prendere il valore che sta in posizione (1,3)). Quindi richiamando la funzione io sostituisco a orientamento nome_matrice(1,3). Questo valore lo ottengo utilizzando la funzione atan2.
Secondo voi la funzione è corretta? Potrebbe esserci qualche problema dovuto alla tipologia di orientamento che mi restituisce atan2 e quello richiesto da rotate?
Grazie