C#-ban hogy kapom meg azokat a koordinátákat, amelyek az általam rajzolt kör körvonalára esnek?
Csak hatvan koordinátára van szükségem a kör középpontjától északra lévőtől kezdődően.
A körnek ezek a paraméterei:
g = CreateGraphics();
g.DrawEllipse(black, 100, 100, 600, 600);
(A black az a toll.)
A form mérete 800x800.
Szia.
Sima matematika.
1. A formod 800x800-as. Ami azt jelenti hogy 800 pixel vizszintesen és függőlegesen is.
2. Te ez elipszist (kört) a 100,100-600,600 pixelek közé rajzolod.
Mi következik ebből : Az elipszis (kör) sugara : 600-100=500 pixel. Az elipszis (kör) bal oldalának a távolsága a form bal oldalától 100 pixel (100-0=100). Az elipszis (kör) jobb oldalának távolsága a form szélétől 200 pixel (800-600=200).
Tehát ha átirod a 600,600-at 700,700-ra akkor középen lesz és 600 pixel sugarú lesz.
Sok sikert.
Üdv.
Nem
A sugara 350 pixel A középpontja 400,400,
amúgy igen a form 800x800 pixeles (a client area mérete ennyi, a form teljes egésze ettől nagyobb mivel hozzájönnek az ablak szélek + a az ablak cimsora is).
Üdv.
Hát én nem nagyon tudok C#-ul, de ne küzdj tovább:
private void button1_Click(object sender, EventArgs e)
{
//Angle fok radiánban; X0, Y0 középpont; X1, Y1 a kör ivén lévő pont; Len vonalhossz
Pen blackPen = new Pen(Color.Black, 3);
double Angle, X0 = 400, X1, Y0 = 400, Y1, Len = 300, s;
System.Drawing.Graphics formGraphics = this.CreateGraphics();
formGraphics.DrawEllipse(blackPen, 100, 100, 600, 600);
for (s = 0; s < 60; s++)
{
Angle = s * 2 * Math.PI / 60;
X1 = Math.Truncate(X0 + Len * Math.Sin(Angle));
Y1 = Math.Truncate(Y0 - Len * Math.Cos(Angle));
formGraphics.DrawLine(blackPen, Convert.ToInt32(X0), Convert.ToInt32(Y0), Convert.ToInt32(X1), Convert.ToInt32(Y1));
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!