|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
|
[C# & DirectX]Problema con campo di esistenza nel rappresentare funzioni 2 variabili
Ciao a tutti!
Ho scritto pochi giorni fa per un problema... Ho risolto, solo che ora ne ho un altro, cerco la soluzione migliore per risolverlo. La funzione in esame è questa: Z=y*(log(x)), nell'intervallo che va da -32 a 32, sia per x che per y. Immaginate quindi, per quanto riguarda la rappresentazione di questa funzione, inizialmente un piano fatto di 64*64 vertici, a cui poi assegnerò l'altezza e il colore e, se non farà parte del campo di esistenza, il valore alpha a 0 per avere la trasparenza. Però non capisco questo comportamento... Il campo di esistenza di questa funzione è per x>0, quindi di vertici nella metà di sinistra non dovrei avere nulla. Eppure sembra proprio che comunque un vertice venga tracciato (coordinate: 0,64,0 pare). Dopodiché viene collegato agli altri vertici... Creando un brutto effetto... ![]() Questa è la vista dall'alto, la parte piana di sinistra non dovrebbe esserci ![]() Questa è la vista di profilo, il triangolone a sinistra non dovrebbe esserci, che poi sarebbe la parte piana che c'è sopra... Ho pensato, dato che non capisco come mai quel vertice venga tracciato, che potrei rendere trasparenti anche quei vertici "di confine" a x=1, solo che dovrei farlo con una funzione che controlli per ogni vertice se almeno uno di quelli di fianco non appartiene al campo di esistenza e quindi renderlo trasparente, e credo che sarebbe una cosa molto laboriosa in quanto a tempo di elaborazione... Non esiste un modo per non far tracciare quel vertice?? Suppongo che venga tracciato perché è il limite del mio piano iniziale di vertici... O per lo meno credo... Però devo fare in modo di sistemare questo problema
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
facevi prima a fare una tesina sulla seconda guerra mondiale
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
|
Quote:
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Comprendo la tua situazione...
Io pure avevo iniziato a fare una tesina mirabolante con una rete neurale a modello evolutivo collegata ad una ragdoll per fungere da muscoli... ma invece ora la faccio sul progresso, senza manco powerpoint E' che con queste cose è impossibile rispettare una data "di rilascio"... e si rischia il buggone del giorno prima Cmq vedi se non salti il primi index dei buffers, lasciando quindi i valori default... |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
|
Boh, io non capisco, ora vi posto il ciclo...
Codice:
Color clInvalid = new Color();
clInvalid = Color.FromArgb(0, Color.Black); //colore trasparente
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
switch (validazioneVertici[x,y])
{
case 0://se non sono validi assegno il colore bianco e la componente alpha a 0 (trasparenza assoluta)
vertici[x + y * width].Color = clInvalid.ToArgb();
vertici[x + y * width].Z = 100;
break;
case 1://se sono validi gli assegno un colore e l'altezza
vertici[x + y * width].Color = cl.ToArgb();
vertici[x + y * width].Position = new Vector3(x, y, (float)functionHeightData[x, y]);
break;
case 2:
vertici[x + y * width].Color = clInvalid.ToArgb();
vertici[x + y * width].Position = new Vector3(x, y, (float)functionHeightData[x, y]);
break;
case 3:
vertici[x + y * width].Color = clInvalid.ToArgb();
vertici[x + y * width].Position = new Vector3(x, y, (float)functionHeightData[x, y]);
break;
}
if (avanzaCalcolo != null)
avanzaCalcolo(this);
}
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
|
Nessuno?
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
|
Ho creato anche la funzione che rende trasparenti i pixel al confine del campo di esistenza ma NULLA!!!! come diavolo è possibile??
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
|
Ragazzi, ho sistemato tutto finalmente!!
Sbagliavo alcune cose, ad esempio non definivo nemmeno una posizione per i vertici trasparenti, e poi ho implementato quella funzione di cui parlavo qualche post fa, cioè quella di rendere invalidi (cioè trasparenti) anche i vertici al confine con i vertici veramente invalidi (che non appartengono al campo di esistenza)
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:29.






















