Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Angoli in Visual Basic

    Salve a tutti!
    Ho bisogno di disegnare degli angoli di data misura con VB.net 2008.
    Non so nemmeno da dove iniziare se non proporvi quest'immagine:

    Basta trovare il punto rosso. Per l'arco di ellisse, uso DrawArc.
    Ciao a tutti e grazie in anticipo!!
    PS. uso il .net framework 3.5
    My website: jymmy097.altervista.org

  2. #2
    Non ho capito, tu hai le coordinate degli estremi di un segmento e vuoi disegnarne un altro che abbia un'inclinazione di tot angoli rispetto al primo? Se è così basta un po' di trigonometria...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Esattamente così!!
    Ma non so bene come impostare le coordinate di disegno del nuovo segmento.
    Poi, non so neanche la trigonometria ma immagino che non sia semplice.
    Potresti fornirmi un piccolo esempio di codice a riguardo per favore?
    Ciao!!
    My website: jymmy097.altervista.org

  4. #4
    Dalle due coordinate del segmento ( (x1,y1), (x2, y2) ) ottieni il suo coefficiente angolare imponendo il passaggio di una retta per le due coordinate:

    y = m x + q

    y1 = m x1 + q
    y2 = m x2 + q

    y1 - y2 = m(x1-x2) => m = (y1-y2)/(x1-x2)

    Una volta ottenuto il coefficiente angolare, puoi ottenere l'inclinazione come angolo rispetto all'asse delle ascisse applicando la "variante" atan2 dell'arcotangente:

    theta = atan2(m)

    A questo angolo vai a sommare il tuo secondo angolo, ottenendo così l'angolo del nuovo segmento rispetto all'asse delle ascisse

    theta_f = theta+alpha

    Puoi quindi tornare nella rappresentazione in termini di coefficiente angolare usando la funzione tangente (tan):

    m_f = tan(theta_f)

    Applichi nuovamente l'equazione della retta:

    y = m_f x + q_f

    Imponi il passaggio per (x1, y1) (se vuoi che abbia un estremo in comune con l'altro segmento, se no puoi imporre il passaggio per qualunque altro punto):

    y1 = m_f x_1 + q_f
    => q_f = y1 - m_f x_1

    Nota quindi la x per cui vuoi che passi il secondo estremo del nuovo segmento (sia x_3) puoi calcolare la relativa y usando

    y_3 = m_f x_3 + q_f
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Mi correggo: dal momento che atan2 per funzionare effettivamente necessita dei due pezzi della frazione, di fatto sarà:

    theta = atan2(y1-y2, x1-x2)

    Inoltre, per evitare problemi di divergenza della tangente, se sai quanto vuoi che sia lungo il secondo segmento (diciamo ro) puoi calcolare le coordinate finali usando seno e coseno:

    y3 = y1 + sin(theta_f)*ro
    x3 = x1 + cos(theta_f)*ro
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Grazie!!!!!!
    My website: jymmy097.altervista.org

  7. #7
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.