Kezdőoldal » Számítástechnika » Programozás » C#-ban hogy kapom meg azokat...

C#-ban hogy kapom meg azokat a koordinátákat, amelyek az általam rajzolt kör körvonalára esnek?

Figyelt kérdés

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.



2014. okt. 31. 08:55
1 2 3 4 5
 11/43 coopper ***** válasza:

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.

2014. okt. 31. 10:29
Hasznos számodra ez a válasz?
 12/43 coopper ***** válasza:

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.

2014. okt. 31. 10:32
Hasznos számodra ez a válasz?
 13/43 SimkoL ***** válasza:

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));

}

}

2014. okt. 31. 11:19
Hasznos számodra ez a válasz?
 14/43 A kérdező kommentje:
Kösz!
2014. okt. 31. 13:28
 15/43 A kérdező kommentje:
De ha 700, 700-at írok a 600, 600 helyett, ki se fér, mert eltolódik jobbra...
2014. okt. 31. 13:30
 16/43 SimkoL ***** válasza:
DrawEllipse(Pen pen, int x, int y, int szélesség, int magasság) tehát a négyzet felső sarkának koordinátája (x, y) szélessége és magassága nem a jobb alsó sarok koordinátái. Ha 100,100,700,700-at írsz akkor a jobb alsó sarok a 800,800 lesz.
2014. okt. 31. 13:45
Hasznos számodra ez a válasz?
 17/43 A kérdező kommentje:
Akkor mond meg, mit írjak, hogy középen legyen végre?
2014. okt. 31. 13:48
 18/43 SimkoL ***** válasza:
700-nál 50,50,700,700 kell, hogy középre essen.
2014. okt. 31. 13:48
Hasznos számodra ez a válasz?
 19/43 A kérdező kommentje:
Köszi.
2014. okt. 31. 13:51
 20/43 anonim ***** válasza:
61%
Valami minimális (középiskola első osztály) szintű matektudást szedjél már össze könyörgöm, ha már ilyeneket akarsz programozni...
2014. okt. 31. 14:07
Hasznos számodra ez a válasz?
1 2 3 4 5

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!