Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace Grafika_09_17 // meg 09_24
- {
- public partial class Form1 : Form
- {
- Graphics g;
- PointF[] points;
- Pen pen;
- Random rand;
- // Nem teszem közzé a solutiont! Dolgozz vele legalább ennyit. :)
- // - Tegyél a Formba egy ListBox controlt
- // - Kattints rá a ListBox-ra
- // - Jobb felső sarokban pici háromszögecskére kattins
- // (- VAGY: Properties ablakban (Visual Studio jobb alsó sarka): Collections, és ott a "..." gombra katt)
- // - Add hozzá azokat a sorokat, amiket szeretnél (DrawRectangle, DrawLine, DrawCurve, stb..)
- // Note: mindegy mi a neve, csak arra jó, hogy tudd, melyik sor mit csinál.
- public Form1()
- {
- InitializeComponent();
- rand = new Random();
- }
- // Lefut, ha a listboxban kiválasztasz egy elemet
- private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
- {
- // try catch blokk! Fontos!
- try
- {
- // System.Reflection - jelen esetben: általánosított függvényhívások
- // (Nem baj ha nem érted :D)
- string fgv = "F" + listBox1.SelectedIndex.ToString();
- this.GetType().InvokeMember(fgv, System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, this, new object[] { }); // Ne bántsd
- }
- catch
- {
- MessageBox.Show("Nincs ilyen függvény definiálva!", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- public void F0() // string
- {
- Invalidate(); // Érvényteleníti a formot, hogy újrarajzolhassa
- Update(); // Azonnal újrarajzol (a kettő együtt párban szokik járni, ha valakit bővebben érdekel, google)
- //
- // Mindenesetre ha nincs itt az invalidate/update, akkor ha végigmész a lista elemein,
- // akkor minden elem meg fog jelenni, annyiszor ahányszor kiválasztod a listaelemeket.
- // Invalidate-el letörli az előzőket.
- //
- g = CreateGraphics();
- // String rajzolása
- g.DrawString("HELLOOO", new Font(FontFamily.GenericSansSerif, 12, FontStyle.Bold),
- new Pen(Color.Black).Brush, new PointF(200, 20));
- }
- public void F1() // négyszög
- {
- Invalidate();
- Update();
- g = CreateGraphics();
- // Négyszög rajzolása
- g.DrawRectangle(new Pen(Color.Red), new Rectangle(200, 40, 60, 60));
- }
- public void F2() // ellipszis
- {
- Invalidate();
- Update();
- g = CreateGraphics();
- // Ellipszis rajzolása
- g.DrawEllipse(new Pen(Color.Blue), new Rectangle(200, 70, 40, 40));
- }
- public void F3() // görbe
- {
- Invalidate();
- Update();
- g = CreateGraphics();
- // Antialiasing, csharp könyv 250. oldal
- // (Röviden: szebb lesz az alakzat)
- g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
- points = new PointF[7];
- for (int i = 0; i < points.Length; i++)
- {
- // Random feltöltés a Form határain belül
- points[i] = new PointF(rand.Next(20, ClientSize.Width - 20), rand.Next(20, ClientSize.Height - 20));
- }
- // Random szinezés (jól jöhet)
- pen = new Pen(Color.FromArgb(rand.Next(0, 255), rand.Next(0, 255), rand.Next(0, 255)), 3);
- // Görbe rajzolása (a megadott pontokon áthaladó görbe!)
- g.DrawCurve(pen, points);
- }
- public void F4() // polygon
- {
- Invalidate();
- Update();
- g = CreateGraphics();
- g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
- points = new PointF[rand.Next(3,10)]; // Tényleg sokszög..
- for (int i = 0; i < points.Length; i++)
- {
- points[i] = new PointF(rand.Next(20, ClientSize.Width - 20), rand.Next(20, ClientSize.Height - 20));
- }
- // Random szinezés
- pen = new Pen(Color.FromArgb(rand.Next(0, 255), rand.Next(0, 255), rand.Next(0, 255)), 5);
- // Sokszög rajzolása
- g.DrawPolygon(pen, points);
- }
- // Hátravan: DrawLine, DrawLines, DrawImage, DrawPie
- // HÁZI: Kérj be 4 adatot textboxokból, és hozz létre kördiagrammot! (Pie = Körcikk ---> DrawPie)
- // Százalékértékeket is feljegyezni! (egyes boxokban a 4 szám összegének hány százaléka van)
- // (csak mert ez fog kelleni a számításhoz)
- // Extra: kitöltött kördiagram (g.FillPie)
- // Extra: Jelölés, nyilazás, hogy melyik érték micsoda
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement