Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-03-2014, 15:42   #1
uomoserio
Senior Member
 
L'Avatar di uomoserio
 
Iscritto dal: Aug 2000
Messaggi: 608
[PHP] Calcolo punti di controllo per spline bicubica (Bezier): help.

Ciao, avrei bisogno di un aiuto circa un problema che forse è più matematico che di programmazione....spero che possiate aiutarmi a capire.

La premessa: ho una serie di punti (di cui conosco le coordinate) in un grafico cartesiano e dovrei collegarli non con linee rette, ma bensì tramite una curva spline bicubica o di Bezier che passi per i punti stessi.
Dispongo già di una funzione PHP di disegno su file PDF che genera una curva di Bezier fra due punti (la chiamo semicurva, poi capirete il motivo), accettando come input le coordinate dei due punti estremi della semicurva e le coordinate dei due punti di controllo (quello iniziale e quello finale).

Il problema, per me, è proprio quello di calcolare le coordinate dei punti di controllo, in modo tale che la successione delle semicurve costituiscano un'unica curva di Bezier fluida che passa per i punti stessi.
Alcuni dettagli da tenere conto sono:
- Il primo punto e l'ultimo punto della serie non possono avere il punto di controllo.
- Il secondo punto di controllo di ogni semicurva deve essere collineare al primo punto di controllo della semicurva successiva, per far sì che la curva finale risultante sia fluida.

Ho trovato molte fonti in rete riguardo l'interpolazione (o approssimazione) di curve con spline bicubiche o Bezier, ma non essendo io un matematico non riesco a capirci quasi nulla.
Inoltre tutto il materiale che ho trovato spiega, dal punto di vista matematico, come calcolare tutti i punti interpolati per generare la curva di Bezier, mentre io ho già una funzione di disegno che si occupa di fare questo e mi serve soltanto calcolare le coordinate dei punti di controllo di ogni semicurva.

Quancuno riesce a spiegarmi come ottengo questo calcolo oppure può segnalarmi qualche fonte dove trovare del codice che esegua questa operazione? Anche se non è codice PHP non importa, posso trasportarlo.

Grazie a chiunque sappia darmi una mano
__________________
Intel Core2Quad Q6600 2,4GHz @ 3,0 GHz
2 Gb RAM 667 MHz
ATI HD2900XT
uomoserio è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2014, 08:25   #2
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Le curve di bezier non passano attraverso i punti che definisci, ci passano solo vicino; inoltre i punti di controllo possono essere posizionati arbitrariamente per deformare la curva, questa resterà comunque "tonda", non presenta angoli.
Se invece vuoi che la curva passi attraverso i tuoi punti, allora una spline fa al caso tuo, inoltre non necessita di punti di controllo, risolvendo il problema a priori.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2014, 12:33   #3
uomoserio
Senior Member
 
L'Avatar di uomoserio
 
Iscritto dal: Aug 2000
Messaggi: 608
Giusto, allora le spline sono la soluzione al mio problema.
Hai qualche risorsa comprensibile che io possa consultare per avere indicazioni su come gestirle ed implementarle nel codice?
__________________
Intel Core2Quad Q6600 2,4GHz @ 3,0 GHz
2 Gb RAM 667 MHz
ATI HD2900XT
uomoserio è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2014, 13:54   #4
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Personalmente non ho mai trattato con le spline da programmatore, però cercando su google trovi diverse librerie in php, scegli quella che trovi più comoda.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2014, 18:09   #5
uomoserio
Senior Member
 
L'Avatar di uomoserio
 
Iscritto dal: Aug 2000
Messaggi: 608
Eh, ma il problema è proprio quello: ho cercato il materiale online, ma ho trovato sempre solo le spiegazioni matematiche di come funzionano e non ho mai trovato librerire di funzioni già pronte, soprattutto per php.
Hai qualche link a portata di mano per caso?
__________________
Intel Core2Quad Q6600 2,4GHz @ 3,0 GHz
2 Gb RAM 667 MHz
ATI HD2900XT
uomoserio è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2014, 18:41   #6
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Basta cercare su google "spline php" (senza virgolette) e trovi una lunga lista.
Questo risultato sembra molto promettente:
http://www.script-tutorials.com/smoo...th-php-and-gd/
Hai delle classi già pronte per disegnare spline tramite GD, il codice sorgente è abbastanza breve e se ne hai bisogno puoi facilmente estrarre solo ciò che ti serve.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Grazie a GLIMPSE-17775 il telescopio spa...
Samsung Galaxy A27 5G è ufficiale...
TCL aggiorna la sua gamma di monitor per...
Anche OPPO avrà uno smartphone co...
La Radeon RX 9070 XT appare su Steam e m...
L'America si ribella ai datacenter: bloc...
'Artificial General Engineer': l'IA di J...
Il drone NASA Dragonfly, che voler&agrav...
Stop immediato a Fable 5 e Mythos 5: il ...
"Prime Day Amazon il 23-26 giugno": sì e...
Oggi 2 super MacBook Pro M5 e M5 Pro, 24...
Tineco Floor One Station S9 Artist: il s...
Raggiunte nuove altitudine e velocit&agr...
Apple Watch Series 11 GPS a 339€ su Amaz...
Come un MacBook, ma con la RTX 5070: MSI...
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: 21:11.


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