› Varie ed Eventuali (Off Topic) › UDF Problema scala
-
AutoreArticoli
-
in allegato file excel con tutte le esplicitazioni
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Allegati:
You must be logged in to view attached files.Ciao,
Che bello sono ritornate le sfide!!!!!
Mi sembra esagerato sprecare una UDF.....
Comunque ecco la mia soluzione
UNA UDF come da richiesta e non due...(
)Ciao Ciao
`Public Function Scala(L1, L2, D, Tipo) Select Case Tipo Case "x", "X" Scala = (L1 ^ 2 - L2 ^ 2 - D ^ 2) / (-2 * D) Case "y", "Y" Scala = (((L1 ^ 2 - L2 ^ 2 - D ^ 2) / (-2 * D)) ^ 2 + (L1 ^ 2)) ^ 0.5 Case Else Scala = "Attenzione Tipo deve essere X o Y" End Select End Function`Ragionamento Svolto:
Detta X la posizione del piede scala da L1 La lunghezza della scala per raggiungere L1 risulta
Y1= RadQ(X^2 + L1^2)
La posizione del piede rispetto a L2 Vale D-X pertanto la lunghezza della scala per raggiungere L2 risulta
Y2= RadQ((D-X)^2 + L2^2)
Ora essendo richiesto che la scala sia uguale risulta
Y1=Y2
ovvero
RadQ(X^2 + L1^2)=RadQ((D-X)^2 + L2^2) Ovvero X^2 + L1^2=(D-X)^2 + L2^2
Svolgendo
X^2+L1^2= D^2+X^2-2DX+L2^2
Semplificando
L1^2= D^2-2DX+L2^2
che porta a
X= (L1^2-L2^2+D^2)/(2*D)
Y viene calcolata con una delle due formule sopra esposte.
Ciao
Ciao a tutti
Intanto un "BRAVO" a @luca73 poi aggiungo quanto segue (vedasi allegato Foglio2):
NO, scusate. Mi sono accorto che il mio ragionamento è errato.
ecco le mie due UDF.
Public Function DistanzaBigTorre(L1, L2, D) c = (D ^ 2 + L2 ^ 2 - L1 ^ 2) / (2 * D) DistanzaBigTorre = c End Function Public Function LunghezzaScala(L1, L2, D) s = ((D ^ 2 + L2 ^ 2 - L1 ^ 2) / (2 * D)) ^ 2 + L1 ^ 2 s = Sqr(s) LunghezzaScala = (s) End Functionunica differenza con Luca è che nella UDF LunghezzaScala io estraggo la Radice Quadrata mentre lui eleva a potenza(inverso della sqr)
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Ciao Albatros, ho usato una elevazione a 0.5 o 1/2 (che poi è esatamente la radice quadrata) solo perchè non mi ricordavo come si chiama la radice quadrata in VBA (che poi mi hai ricordato tu essere sqr)
....La chiamerei pigrizia...
Salve Carissimi
Il problema delle scale mi ha coinvolto e, anche se in un primo momento avevo ... deragliato, ho voluto trasferire in un Grafico quanto asserito sopra.
Tutto OK tranne ....
Cosa ho immaginato: si vuole costruire una linea che congiunga i due punti massimi delle torre (o dei pali), individuare il punto di intersezione sulle ascisse in modo tale che le scale abbiano la stessa altezza.
Dall'allegato noterete che (mostro tutti i passaggi per dovizia di particolari) secondo i miei calcoli le scale non sono uguali. Il problema sorge a causa del coefficiente angolare (pendenza) della retta inclinata che unisce i due punti massimi. Se nel mio elaborato inserite -0,2 al posto di -0,18182 (che riviene dal calcolo della pendenza) le misure sono uguali. Perchè?
Secondo problema: voglio che il palo più alto non sia sullo 0 dell'ascissa ma, per esempio, a 2 (modificare il dato nella cella indicata). Il tutto sballa, anche mettendo il fatidico -0.2 invece di -0.18182
Mi date, per favore, qualche delucidazione (visto il tanto, troppo tempo trascorso dalle nozioni scolastiche). Grazie.
Ciao,
Mario
Il file è un .xlsm perchè ho provato le vostre UDF che poi ho cancellato.
Allegati:
You must be logged in to view attached files. -
AutoreArticoli
