Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-06-2011, 22:16   #1
3nigma666
Senior Member
 
L'Avatar di 3nigma666
 
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
[c#]Algoritmo per verificare se un punto è contenuto in 1 poligono concavo e convesso

Ciao a tutti, spero possa essere utile questa soluzione che ho trovato per verificare se un punto è contenuto o meno all'interno di un poligono, sia che esso sia concavo sia convesso. Io l'ho applicato a google maps, ovvero dato un poligono disegnato con le coordinate gps , verifico se un punto è all'interno o meno.

ecco il codice:

Codice:
 public class puntoAppartienePoligono
    {
        #region Variables
        Dictionary<int, MarkerColorato> ListaVertici;
        #endregion
        #region 2 versione
        
        public puntoAppartienePoligono(Dictionary <int, MarkerColorato> Lista)
        {
            ListaVertici = Lista;
        }

        public bool IsInside(MarkerColorato punto)
        {
            CultureInfo usCulture = new CultureInfo("en-US");

                /* The points creating the polygon. */
            float[] x = new float[ListaVertici.Count];
            float[] y = new float[ListaVertici.Count];
            float x1,x2;

            /* The coordinates of the point */
            float px, py;
            px = float.Parse(punto.X,usCulture);
            py = float.Parse(punto.Y,usCulture);
 
            /* How many times the ray crosses a line-segment */
            int crossings = 0;
            
            ///* Coordinates of the points */
            for (int i = 0; i < ListaVertici.Count;i++)
            {
                x[i] = float.Parse(ListaVertici.ElementAt(i).Value.X,usCulture);
                y[i] = float.Parse(ListaVertici.ElementAt(i).Value.Y,usCulture);
            }
            
            /* Iterate through each line */
            //for ( int i = 0; i < 8; i++ ){
            for ( int i = 0; i < ListaVertici.Count-1; i++ )
            {
                /* This is done to ensure that we get the same result when
                the line goes from left to right and right to left */
                if (x[i] < x[(i + 1) % (ListaVertici.Count - 1)])
                {
                        x1 = x[i];
                        x2 = x[(i + 1) % (ListaVertici.Count - 1)];
                } 
                else 
                {
                    x1 = x[(i + 1) % (ListaVertici.Count - 1)];
                        x2 = x[i];
                }
       
                /* First check if the ray is possible to cross the line */
                if ( px > x1 && px <= x2 && ( py < y[i] || py <= y[(i+1)%8] ) )
                {
                        //static const float eps = 0.000001;
                        const float eps = (float)0.000001;
 
                        /* Calculate the equation of the line */
                        float dx = x[(i + 1) % (ListaVertici.Count - 1)] - x[i];
                        float dy = y[(i + 1) % (ListaVertici.Count - 1)] - y[i];
                        float k;
 
                        //if ( fabs(dx) < eps ){
                        if (Math.Abs(dx) < eps)
                            k = float.PositiveInfinity;
                        else
                            k = dy/dx;
 
                        float m = y[i] - k * x[i];
               
                        /* Find if the ray crosses the line */
                        float y2 = k * px + m;
                        if ( py <= y2 )
                            crossings++;
                }
            }
 
            //printf("The point is crossing %d lines", crossings);
            if (crossings % 2 == 1)
                return true;
            else
                return false;
        }
        #endregion
    }
come potete vedere nel costruttore gli passo un tipo MarkerColorato, che altro non è che una classe che ho definito io.

Ecco sotto al definizione della classe:


Codice:
public class MarkerColorato
    {
        public string X;
        public string Y;
        public string Localita;
        public static string[] colors = { "black", "brown", "purple", "yellow", "blue", "gray", "orange", "red", "white" };
        public static string coloreOk = "green";
        public string color;
        public int areaID;
        string label;

        public MarkerColorato(string x, string y)
        {
            X = x;
            Y = y;
            label = RandomHelper.RandomString(1, false);
            UseRandomColor();
        }

        public MarkerColorato(string x, string y, string localita)
        {
            X = x;
            Y = y;
            Localita = localita;
            label = RandomHelper.RandomString(1, false);
            UseRandomColor();
        }

        public MarkerColorato(string x, string y, int id)
        {
            X = x;
            Y = y;
            areaID = id;
            label = RandomHelper.RandomString(1, false);
            UseRandomColor();
        }

   
        /// <summary>Assegna a questo marker un colore random</summary>
        public void UseRandomColor()
        {
            color = colors[RandomHelper.RandomNumber(0, 8)];
        }

        public string urlMarker()
        {
             string urlMarkerBase = "&markers=";
             string urlLabel = "|label:";
             string urlChiusuraLabel = "|";
             string urlColor = "color:"+color;
             string urlCoordinateMarker = X + "," + Y;
             return urlMarkerBase +  urlColor + urlLabel + label + urlChiusuraLabel + urlCoordinateMarker;
        }

        
    }

spero possa essere utile a qualcuno.
3nigma666 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
XT View Matrix, il mid-tower Phanteks ch...
David Sacks lascia il ruolo di 'Crypto C...
LG All Stars 2026: quando l'installatore...
Addio ad Anna's Archive? Ecco la mossa l...
Addio al Mac Pro, Apple mette fine a un ...
Panasonic a MCE 2026: la rivoluzione sil...
Netflix alza la posta: il piano Premium ...
Nimbus Innovation Awards – Cloud Edition...
Wikipedia vieta i contenuti generati dal...
Niente volante, niente schermi: cos&igra...
Gli 'Avengers' di Windows sono tornati: ...
Alien Deathstorm annunciato da Rebellion...
Amazon Haul punta tutto sui prezzi bassi...
Microsoft blocca i driver storici: stret...
Serious Sam: Shatterverse annunciato all...
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: 13:41.


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