private void ucitajMenu_Click(object sender, EventArgs e) { using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.InitialDirectory = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "pohranjeno"; dialog.FileName = "sejv.igra"; dialog.Filter = Postavke.Jezik[Kontekst.WindowsDijalozi, "TIP_SEJVA"].tekst(null) + " (*.igra)|*.igra"; if (dialog.ShowDialog() == DialogResult.OK) { GZipStream zipStream = new GZipStream(new FileStream(dialog.FileName, FileMode.Open), CompressionMode.Decompress); StreamReader citac = new StreamReader(zipStream); string ucitanaIgra = citac.ReadToEnd(); citac.Close(); this.igra = IgraZvj.Ucitaj(ucitanaIgra); igrac = igra.trenutniIgrac(); pomakPogleda = null; prikazMape = new PrikazMape(igra); this.picMapa.Image = prikazMape.slikaMape; noviKrugPogled(); } } }
private void picMapa_Click(object sender, EventArgs e) { MouseEventArgs mouseEvent = (MouseEventArgs)e; int x = mouseEvent.X; int y = mouseEvent.Y; Zvijezda odabranaZvijezda = igra.mapa.najblizaZvijezda( prikazMape.XnaMapi(x), prikazMape.YnaMapi(y), 0.5); if (odabranaZvijezda != null) { if (frmFlotaPokret != null && frmFlotaPokret.Visible && frmFlotaPokret.Enabled) { frmFlotaPokret.postaviOdrediste(odabranaZvijezda); return; } else { odaberiZvijezdu(odabranaZvijezda, true); } } pomakPogleda = new Tocka <double>(x / (double)picMapa.Width, y / (double)picMapa.Height); }
private void timerAnimacija_Tick(object sender, EventArgs e) { if (pomakPogleda == null) { return; } int pomakNaX = (int)(picMapa.Width * pomakPogleda.x); int pomakNaY = (int)(picMapa.Height * pomakPogleda.y); int dx = odrediPomakScrolla(picMapa.Width, pnlMapa.Width, pnlMapa.HorizontalScroll, pomakNaX, 4); int dy = odrediPomakScrolla(picMapa.Height, pnlMapa.Height, pnlMapa.VerticalScroll, pomakNaY, 4); if (dx == 0) { dx = odrediPomakScrolla(picMapa.Width, pnlMapa.Width, pnlMapa.HorizontalScroll, pomakNaX, 4); } pnlMapa.HorizontalScroll.Value += dx; pnlMapa.VerticalScroll.Value += dy; if (dx == 0 && dy == 0) { pomakPogleda = null; } }
void RacunajSjeciste() { NumberFormatInfo nfi = new NumberFormatInfo { NumberDecimalSeparator = "." }; Tocka t = sjeciste.IzracunajSjeciste(qe, qe2); label4.Text = "Koordinate sjecišta:\n(" + t.X.ToString(nfi) + " , " + t.Y.ToString(nfi) + ")"; }
private void centrirajZvijezdu(Zvijezda zvijezda) { int x = prikazMape.XsaMape(igrac.odabranaZvijezda.x); int y = prikazMape.YsaMape(igrac.odabranaZvijezda.y); x = odrediPomakScrolla(picMapa.Width, pnlMapa.Width, pnlMapa.HorizontalScroll, x, 0); y = odrediPomakScrolla(picMapa.Height, pnlMapa.Height, pnlMapa.VerticalScroll, y, 0); pnlMapa.HorizontalScroll.Value += x; pnlMapa.VerticalScroll.Value += y; pomakPogleda = null; }
/// Vrne na kateri strani je tocka t3 glede na daljico t1 in t2 /// ce je nad daljico je -1 drgace pa 1 int Stran(Tocka t1, Tocka t2, Tocka t3) { int val = (t3.y - t1.y) * (t2.x - t1.x) - (t2.y - t1.y) * (t3.x - t1.x); if (val > 0) { return(1); } if (val < 0) { return(-1); } return(0); }
public FormIgra(IgraZvj igra) { InitializeComponent(); this.igra = igra; igrac = igra.trenutniIgrac(); this.frmFlotaPokret = new FormFlotaPokret(this); this.AddOwnedForm(frmFlotaPokret); pomakPogleda = null; prikazMape = new PrikazMape(igra); this.picMapa.Image = prikazMape.slikaMape; tabCtrlDesno.ImageList = new ImageList(); tabCtrlDesno.ImageList.ImageSize = new Size(32, 32); tabCtrlDesno.ImageList.Images.Add(new Bitmap(1, 1)); tabCtrlDesno.ImageList.Images.Add(Slike.PlanetTab[Planet.Tip.ASTEROIDI][0].image); tabCtrlDesno.ImageList.Images.Add(Slike.FlotaTab); tabPageZvijezda.ImageIndex = 0; tabPageKolonija.ImageIndex = 1; tabPageFlote.ImageIndex = 2; //listViewPlaneti.LargeImageList = new ImageList(); //listViewPlaneti.LargeImageList.ImageSize = new Size(32, 32); //Image[] planetImages = new Image[Slike.PlanetImageIndex.Count]; //foreach (Image img in Slike.PlanetImageIndex.Keys) // planetImages[Slike.PlanetImageIndex[img]] = img; //listViewPlaneti.LargeImageList.Images.AddRange(planetImages); btnCivilnaGradnja.Text = ""; btnVojnaGradnja.Text = ""; tvFlota.ImageList = new ImageList(); tvFlota.ImageList.ImageSize = new Size(20, 20); postaviJezik(); postaviAkcijeBroda(); for (int i = 0; i < 15; i++) { BriefPlanetItem planetInfo = new BriefPlanetItem(); planetInfo.Click += this.listViewPlaneti_Click; planetInfoi[i] = planetInfo; planetiFlowPanel.Controls.Add(planetInfo); } this.Font = Postavke.FontSucelja(this.Font); }
public static int orentacija(Tocka t1, Tocka t2, Tocka t3) { int val = (t2.y - t1.y) * (t3.x - t2.x) - (t2.x - t1.x) * (t3.y - t2.y); if (val == 0) { return(0); // kolinearna } if (val > 0) { return(1); } else { return(2); } }
private void button2_Click(object sender, EventArgs e) { if (tocke_zgenerirane) { Brush aBrush = (Brush)Brushes.Black; // za risanje tock Brush bBrush = (Brush)Brushes.Red; // za risanje tock Pen pen = new Pen(ForeColor); // za risanje daljic med tockama Graphics g = this.CreateGraphics(); if (radioButton3.Checked == true) { /// Jarvisov obhod Tocka[] a = new Tocka[stevilo_tock]; for (int i = 0; i < stevilo_tock; i++) { a[i] = new Tocka(tocke[i].x, tocke[i].y); // si shranimo tocke v novo polje } Jarvisov_obhod(a, stevilo_tock); // klicemo funkcijo Jarisov obhod tocke.Clear(); } else if (radioButton4.Checked == true) { /// Hitra konveksna lupina //MessageBox.Show("Hitra konveksna lupina"); Tocka[] a = new Tocka[stevilo_tock]; for (int i = 0; i < stevilo_tock; i++) { a[i] = new Tocka(tocke[i].x, tocke[i].y); // si shranimo tocke v novo polje } Hitra_konveksna_lupina(a, stevilo_tock); // klicemo funkcijo tocke.Clear(); } } else { MessageBox.Show("Tocke se niso zgenerirane"); } }
void HKL(Tocka tocka_min, Tocka tocka_max, int stran) { Brush aBrush = (Brush)Brushes.Black; // za risanje tock Brush bBrush = (Brush)Brushes.Red; // za risanje tock Pen pen = new Pen(ForeColor); // za risanje daljic med tockama Graphics g = this.CreateGraphics(); int index = -1; int max_razdalja = 0; // poiscemo najvecjo razdaljo od tocke do daljice, ki je na pravi strani daljice for (int i = 0; i < stevilo_tock; i++) { int temp = razdalja(tocka_min, tocka_max, tocke[i]); if (Stran(tocka_min, tocka_max, tocke[i]) == stran && temp > max_razdalja) { index = i; max_razdalja = temp; } } if (index > 0) { g.DrawLine(pen, tocke[index].x, tocke[index].y, tocka_max.x, tocka_max.y); g.DrawLine(pen, tocke[index].x, tocke[index].y, tocka_min.x, tocka_min.y); } // ce ne najdemo dobene damo zadni dve tocki v lupino if (index == -1) { lupina_HKL.Add(tocka_min); lupina_HKL.Add(tocka_max); return; } // Rekurzivno klice sama sebe HKL(tocke[index], tocka_min, -Stran(tocke[index], tocka_min, tocka_max)); HKL(tocke[index], tocka_max, -Stran(tocke[index], tocka_max, tocka_min)); }
static void Main(string[] args) { Tocka t = new Tocka(1, -2); Console.WriteLine("Toèka ({0},{1}) je u {2}.kvadrantu.", t.cx, t.cy, t.Kvadrant()); }
internal static string Udaljenost2D(Tocka A, Tocka B) { return(Math.Sqrt(Math.Pow(A.X - B.X, 2) + Math.Pow(A.Y - B.Y, 2)).ToString()); }
/// vrne razdaljo od tocke do daljice int razdalja(Tocka t1, Tocka t2, Tocka t3) { return(Math.Abs((t3.y - t1.y) * (t2.x - t1.x) - (t2.y - t1.y) * (t3.x - t1.x))); }