Newsgroup: it.hobby.enigmi
Titolo: coordinate e dintorni

Vi pongo il seguente quesito:
Ho un cerchio di cui conosco le coordinate x,y del suo centro e il suo raggio. Consideriamo il suo
raggio perfettamente perpendicolare alla base x e perfettamente parallelo alla base y. Questo
segmento deve essere ruotato di n gradi in senso antiorario o orario. Il risultato dovrà essere
ovviamente sempre un raggio del cerchio e devo quindi conoscere il punto (x,y) del cerchio che viene
toccato dal nuovo segmento.
E' possibile risolverlo? Se sì,come?
So di non essermi spiegato perfettamente, se non avete capito qualcosa, chiedetemelo!

 E' possibile risolverlo? Se sì,come?
Beh provo, ma ti avviso che le mie conoscenze in materia si limitano
all'analitica del liceo, che non mi ricordo assolutamente le rotazioni e che
la soluzione presenta una pecca....
Il centro C della circonferenza ha coordinate (x1;y1) e raggio r;
l'equazione risulta quindi essere x^2+y^2-2x1-2y1+x1^2+y1^2-r^2=0. A questo
punto si traccia il raggio ruotato di alfa gradi e lo si prolunga, ottenendo
la retta q, che interseca l'asse x in un punto che chiameremo K. La retta in
questione, passante per C, ha equazione (y-y1)=m(x-x1). Per un attimo
facciamo finta di conoscere il coefficiente angolare della retta: la
soluzione si trova intersecando la circonferenza con la retta q (e qui sta
il punto dolente, in quanto i punti che si vengono a trovare sono 2).
Bisogna però scoprire il coefficiente angolare della retta. Non so se
esistano formule che permettono di ricavarlo e quindi propongo una mia
strada. Il triangolo CKH (dove H è la proiezione del centro sull'asse x) è,
per costruzione, rettangolo, quindi il nostro angolo alfa è complementare
dell'angolo CKH. Il coefficiente angolare di q si trova quindi come
[sin(90°-alfa)]/[cos(90°-alfa)]. Si considerino positivi gli angoli in senso
orario, negativi quelli antiorari.
Questa è una soluzione un po' "artigianale", ma spero di non aver commesso
errori (anche se non lo escudo) e di essere stato
abbastanza chiaro.
Fitamafia
--
__________________________________
Toccare il cielo è un'avventura dello spirito
__________________________________

 ha
scritto:
[cut]
Ciao, scusa se ti faccio una domanda che non c'entra con il manifesto del
ng, ma il tuo nickname mi ha proprio incuriosito, vorrei chiederti il
significato del termine Fitamafia, non si riferira' mica alla nota
associazione a delinquere?!
Ciao
--
Giorgio Bibbiani
Per rispondere togliere la h nell'indirizzo e-mail.

abbastanza chiaro.
Mi dispiace,ma io non ci ho capito niente. Lo so che è colpa mia perchè conosco a malapena le
equazioni a se puoi, per favore, ripostalo in modo che mi sia comprensibile.
Grazie ancora anticipatamente.
Non ho precisato che il mio sistema di assi cartesiani è una finestra di un programma (si tratta di
un programma che sto facendo in vb6) e che quindi non posso ruotarla manualmente. Posso solo
tracciare linee cerchi e rettangoli e posso conoscerbe le misure in pixel, ma l'unico modo di
disegnarle è sapere le coordinate x;y. Elencherò sotto i dati a mia disposizione.
valore x;y del centro del centro del cerchio
 valore x;y del punto della circonferenza toccato dalla linea (che è un raggio)
valore della circonferenza
valore della coda e della porzione di cerchio che c'è tra i due raggi (l'originale e il risultante)
num. di gradi in cui deve essere ruotata le linea
lunghezza del raggio
Penso di non aver dimenticato nulla.

 Penso di non aver dimenticato nulla.
A. .
|    . B
|    / .
|   /    .
|  /      .
| /        .
|/          .
0           .
Se non ho capito male (OA raggio dato; OB raggio ruotato) conosci:
_le coordinate x_O ed y_O del punto O (centro del cerchio)
_l'angolo alfa=AOB di cui ruota il raggio
_la lunghezza r=AO=OB del raggio
e vuoi trovare le coordinate x_B y_B del punto B (estremità del raggio
ruotato)
se è così:
x_B = x_O + r*sin(alfa)
y_B = y_O + r*cos(alfa)
queste formule sono valide se si considera:
x crescente verso destra
y crescente verso l'alto
angoli positivi in senso orario
alcuni programmi potrebbero adottare convenzioni diverse, e quindi le
formule andrebbero opportunamente modificate
tieni anche presente che generalmente i programmi trattano gli angoli in
radianti: se hai il valore in gradi trasformalo prima di calcolare seno e
coseno
Se invece ho capito male, attendo tue delucidazioni
ciao
paolo

E' un problemino facile facile di geometria analitica.
Sia (Cx,Cy) il centro del cerchio, n l'anglolo di rotazione (positiva
nel senso antiorario) allora il punto finale si trovera' a:
x=Cx+R*cos(n)
y=Cy-R*sin(n)
Ciao
Scola


 associazione a delinquere?!
No, non si riferisce a ciň. La storia č un pochino lunga, riassumendo ti
basti sapere che il nick completo č Fitamafia Jones e che il tutto deriva
dall'avventura grafica "Indiana Jones and the fate of Atlantis".
Scusate l'OT.
Fitamafia
--
__________________________________
Toccare il cielo č un'avventura dello spirito
__________________________________

 dall'avventura grafica "Indiana Jones and the fate of Atlantis".
Ti ringrazio per la precisazione, mi hai rassicurato!




Perfetto ora ho capito! Grazie 1000.

Scola
Grazie 1000!