Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-02-2006, 13:41   #1
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Simulare una palla che rimabalza

Ciao a tutti, sto provando a simulare il comportamento di una palla che rimbalza dopo essere stata "sparata".
Per farlo utilizzo le classicje leggi orarie del moto eccelerato e non, ovvero la posizione Y=y0+Vy0*t-(g/2)*t^2 e la posizione sulle X=x0+Vx0*t
Queso fa bene fino a che tocca terra ma quando tocca terra cosa devo fargli fare?
Io ho pensato di riazzerare il tempo e risettare come posione inziale quella in cui si trova e quindi di invertire il segno della velocità Vy0.Questo va abb bene ma siccome il controllo della collisione sul terreno lo fa ogni ciclo, ma la palla può darsi che un attimo prima nn si in collisione mentre l'attimo dopo nn solo ha colliso, ma ha anche superato il terreno e quindi non funziona tanto bene.
Come si fa di solito?

grazie
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2006, 14:02   #2
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Mmm, se non devi fare una simulazione accurata una idea che mi viene in mente è quella di usare una funzione trigonometrica (sin(x) o cos(x) o il loro quadrato) per la posizione Y moltiplicata per un fattore di smorzamento da far avvicinare sempre più allo zero ogni volta che la palla tocca terra .

Altrimenti credo che la Y sia sufficiente calcolarla invertendo Vy0 e azzerando il tempo (come hai suggerito anche tu mi sembra)

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2006, 14:52   #3
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Mi sa che sto usando un approccio sbagliato.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2006, 22:15   #4
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da AnonimoVeneziano
Mmm, se non devi fare una simulazione accurata una idea che mi viene in mente è quella di usare una funzione trigonometrica (sin(x) o cos(x) o il loro quadrato) per la posizione Y moltiplicata per un fattore di smorzamento da far avvicinare sempre più allo zero ogni volta che la palla tocca terra .

Altrimenti credo che la Y sia sufficiente calcolarla invertendo Vy0 e azzerando il tempo (come hai suggerito anche tu mi sembra)

Ciao
Il fatto è che non posso utlizzare una funzione trigonometrica xkè voglio considerare anche l'urto contro una superficie obliqua.
La via più ovvia mi sembra quella di modificare le velocità che istante x istante agiscono sulla palla, ma non sto ottenendo buoni risultati...
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2006, 10:30   #5
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Prova a utilizzare il modulo:

- lungo l'asse Y, ponendo il pavimento con ordinata 0, non ci dovrebbero essere particolari problemi, se non invertire il segno dell'accelerazione di gravità dopo ogni urto ( y = |.....|);
- lungo l'asse X bisogna fare attenzione all'ascissa degli ostacoli verticali, e quindi impostare un sistema con equazioni del tipo x-X0 = |......|, avendo cura questa volta di invertire il segno della velocità dopo ogni urto.

Spero di non aver detto troppe fesserie "dinamiche" (o cinematiche? )
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2006, 10:32   #6
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Nell'ipotesi semplificativa che la palla non stia ruotando su se stessa, che non sia sottoposta ad attriti, che sia trascurabile il proprio raggio, che il tutto avvenga su di un piano perpendicolare al piano di lancio, si ha (a meno di errori grossolani):

v0=Velocita' iniziale con cui e' stata lanciata la palla.
a=alzo
g=accelerazione di gravita'

L'equazione della traiettoria della palla sara': y=x*tg(a)-x^2*g/(2*v0^2*Cos(a)^2)

La gittata sara': G=v0^2*Sin(2*a)/g

Il tempo di volo sara': 2*v0*Sin(a)/g

L'altezza massima raggiunta sara': v0^2*Sin(a)^2/(2*g)

Quando la palla tocca terra, l'angolo d'impatto sara' b=a (dall'equazione della traierroria), ma se l'impatto avviene ad un'altezza diversa o se la proiezione del piano d'impatto non e' parrallela alla proiezione piano di lancio, e' sufficiente derivare l'equazione della traiettoria nel punto d'impatto e sottrarre a derivata della retta costituente la proiezione del piano d'impatto.

Calcolato b (angolo d'impatto), e' necessario riapplicare tutto il procedimento da principio tenendo conto che:

a=b
v0=v0*f1-f2

f1 e f2 sono fattori di smorzamento il primo tiene conto della risposta elastica della palla ed e' una quantita minore di 1 (0.7 per esempio), il secondo tiene conto di uno pseudo-attrito (altrimenti la palla rimbalzerrebbe all'infinito (ed e' ad esempio 1/10 della velocita' iniziale).

La palla si ferma quanto v0<0.

P.S. Si tratta di un modello primitivo, spero ti sia d'aiuto.

EDIT: Corretta l'equazione della traiettoria della palla (e' una parabola, mancava un x^2)

Ultima modifica di repne scasb : 23-02-2006 alle 11:03.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2006, 10:46   #7
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Quote:
Originariamente inviato da repne scasb
P.S. Si tratta di un modello primitivo, spero ti sia d'aiuto.
Il mio allora è da australopithecus, se va bene
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2006, 16:38   #8
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Grazie ragazzi ho risolto per quanto riguarda i rimbalzi, ora ad ogni collisione mi ricalcolo l'angolo di uscita dopo l'urto alpha (e betha xkè sono in uno spazio 3D) in relazione a l'angolo d'impatto e a quello della superficie dove si impatta ed il modulo della velocità, in questo modo riesco a ricalcolare tutte le componenti della velocità.Mi sembra che sia molto reale così.
Ora mi rimane da trovare un buon metodo per sapere quando ci sia una collisione.
Considerando che può impattare contro più superfici contemporaneamente, come posso fare?
Avevo pensato di calcolarmi a priori se la traiettoria della palla interseca o no un qualche oggetto, ma da cosa è descritta la traiettoria della palla?
Siccome sono in uno spazio 3D non mi basta la classica Y=x*tan(alpha)-(g/2*(Vo*cos(alpha))^2)*x^2) xkè in questo modo mi calcolo solo la Y, a me serve anche la Z.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2006, 20:13   #9
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Sono risucito a ricavarmi anche la Z ora provo a vedere se funziona.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2006, 19:31   #10
eve
Senior Member
 
Iscritto dal: Apr 2005
Città: Padova
Messaggi: 1156
se per te non è un problema potresti postare le sorgenti oppure anche solo l'exe ?
grazie
__________________
THUG-LIFE
eve è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 02:30   #11
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Codice:
Ora mi rimane da trovare un buon metodo per sapere quando ci sia una collisione.
Avemdo le coordinate 3d xyz della palla e degli oggetti es.:

coordinate palla(10,10,10)

qualsiasi poligono a coordinate (10,10,10) significa che c'è collisione
okay è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 11:55   #12
Alexxio
Senior Member
 
Iscritto dal: Aug 2002
Città: putignano(BA)
Messaggi: 1453
che programma stai usando?
Alexxio è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 17:12   #13
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Sto usando labview non se lo conoscete, usa il linguaggio G che è grafico.
Per quanto riguarda le coordinate io so le coordiate del centro della sfera infatti per spostare la sfera sposto il suo centro, mentre per un poligono conosco solo i vertici, quindi nonnè così semplice la cosa.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 18:15   #14
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da MEMon
Sto usando labview non se lo conoscete, usa il linguaggio G che è grafico.
Per quanto riguarda le coordinate io so le coordiate del centro della sfera infatti per spostare la sfera sposto il suo centro, mentre per un poligono conosco solo i vertici, quindi nonnè così semplice la cosa.

Lo spazio 3d è il tuo mondo. Ogni punto di questo spazio è formato da 3 coordinate appunto spazio 3d.

Se hai un poligono quadrato nel tuo mondo il poligono a 4 vertici cioè un piano con queste coordinate per esempio.

100.0........100.0
----------
|...........|
|.....S....| S = sfera che stà a coordinate (x, y, z ) = (50.0, 0.0, 50.0)
|...........|
----------
0.0.........100.0

coordinata z
^
|
|
|
|
----------> coordinata x

Tu dici di conoscre le coordinate della sfera quindi hai una sfera che nel tuo mondo 3d si trova a coordinate tot esempio:
sfera a coordinate (x, y, z) = (50.0, 0.0, 50.0) la y = 0 perchè attaccata al suolo.

se muvi la sfera e ti porti a coordinate (x, y, z) = (0.0, 0.0, 0.0)

la posizione della sfera sarà:

100.0........100.0
----------
|...........|
|...........|
|...........|
S--------
0.0.........100.0

S = sfera ora stà a coordinate (x, y, z ) = (0.0, 0.0, 0.0)


e c'è pure collisione con il poligono.

se vuoi scostarti (collision response) fai:

if (sfera<0.0)
sfera+=1.0

è solo un esempio, sfera potrebbe essere un D3DVECTOR che rappresenta un vettore di posizione io faccio così in directx.

Solo per farti capire il concetto.

cerca con google questi termini
- spazio 3d
- collision detection
- collision response

Ultima modifica di okay : 25-02-2006 alle 18:22.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 19:27   #15
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ho capito quello che vuoi dire, ma mettiamo il caso che io ho un poligono simile al cubo con 4 vertici quindi ma con le facce non parallele tra loro e inclinate di alpha gradi rispetto al suolo, a me serve che quando ho una collisione abbia le informazioni della superficie contro cui sto collidendo tipo l'angola che ha con il suolo, lo smorzamento che provoca sulla palla ecc ecc.
Se io faccio una cosa come quella che dici te so solo (e con mooooolta approssimazione) quando la sfera mi interseca un poligono.

per il collision respone ho già risolto, sto cercando un buon collision detect ora
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 19:29   #16
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Considerando che io conosco l'equazione del moto della mia palla, posso sapere quando essa interseca un piano le cui coordinate generiche sono ax+by+cz+d=0
Il problema è che non riesco a ricavarmi l'equazione di ogni faccia dei miei poligono conoscendo solo i vertici.
Se qualcuno mi aiuta...
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 19:56   #17
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da MEMon
Considerando che io conosco l'equazione del moto della mia palla, posso sapere quando essa interseca un piano le cui coordinate generiche sono ax+by+cz+d=0
Il problema è che non riesco a ricavarmi l'equazione di ogni faccia dei miei poligono conoscendo solo i vertici.
Se qualcuno mi aiuta...
se prendi quel poligono che ho fatto e ne duplichi 5 e li attacchi tra loro avrai un cubo di 8 vertici 4 di questi pavimenti (piani) avranno coordinate:
(x, y z) = (0.0, 100.0, 100.0) ecc ecc... quindi basta calcolare la posizione (vettore 3d) della sfera e le posizioni (vettori 3d) degli 8 vertici.

... esatto calcolando il collision response con le formule trigonometriche ottieni il risultato che vuoi... + o - una fisica decente dipende da cosa vuoi e fare.

repne scasb è sempre mitica...



ciao

Ultima modifica di okay : 25-02-2006 alle 19:59.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 20:19   #18
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ti ringrazio per l'interessamento, non ho capito cosa intendi per mettere insieme 5 poligoni non è che mi faresti un disegnino?

Comunque questa immagine mostra la palla che sta per impattare contro la superficie blu, come vedi la superficie non è regole in quanto è angolata rispetto al suolo.

In questo caso come fai ad indivudare se la palla collide o no?
Ti ripeto che io conosco solo i 4 vertici della faccia e le coordinate del CENTRO della palla.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 21:37   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
io purtroppo non so darti indicazioni precise perché non ho mai studiato geometria analitica a più di 2 dimensioni, comunque essenzialmente dovresti ricavare l'equazione del piano su cui giace la faccia (e per farlo ti bastano anche solo 3 vertici, uno è superfluo) e l'equazione della parabola descritta dalla sfera; poi le metti a sistema e così trovi il punto o i punti (se esistono) in cui la parabola e il piano coincidono. se questi punti esistono sono sicuramente solo due, magari coincidenti, quindi il massimo che devi fare è un'equazione di secondo grado

PS: non vorrei sparare una balla grossa così (oltre a quella della tua simulazione ) ma credo che l'equazione del piano nello spazio sia una cosa tipo
ax + by + cz + d = 0

prendila con le pinze

Ultima modifica di 71104 : 25-02-2006 alle 21:43.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2006, 21:39   #20
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
altra soluzione, sicuramente migliore: calcolare i punti di tangeza (se esistono) tra la sfera e il piano in questione, anche considerando che in certi casi il piano potrebbe avere dei punti di tangenza, ma siccome il poligono che ci interessa è limitato potrebbe non esserci comunque la collisione. non ho la minima idea di come fare
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Le tute spaziali AxEMU di Axiom Space pe...
Dongfeng sfida la NATO: navi dalla Cina ...
5G Standalone per il mondo marittimo: Er...
Nova Lake-S: configurazioni fino a 52 co...
Baxi presenta la pompa di calore Alya E ...
PC ASUS e Acer vietati in Germania: il t...
Stellantis rilancia il diesel in Europa:...
Truffa per utenti Trezor e Ledger: lette...
Wi-Fi 7 conveniente: FRITZ! lancia 4630,...
La Formula 1 dei robot tagliaerba miglio...
Il nuovo gioco del creatore di God of Wa...
Grok arriva sulle Tesla in Europa: l'int...
Assassin's Creed IV: Black Flag Remake p...
Il padre di God of War attacca Sons...
È operativo il primo computer qua...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v