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
 1/43 anonim ***** válasza:
(x-x0)^2 + (y-y0)^2 = R^2 képlettel próbálkozz.
2014. okt. 31. 09:06
Hasznos számodra ez a válasz?
 2/43 coopper ***** válasza:
80%

Szia.


Nézd meg ezt : [link]


Szerintem körvonal "B" verzió : R*cos(alfa),R*sin(alfa) ez az alap képlet, kiegésziteném a következőkkel : X0+ R*cos(alfa),Y0+R*sin(alfa) (ahol X0,Y0 a kör középpontjénak koordinátái) tehát a fenti képlettel meg tudod határozni a körvonalra eső pontok koordinátáit (Ha 60 db kell akkor értelemszeű úgy kell a ciklust inditani, hogy 6 fokonként változik az alfa : 360/60=6) .


Sok sikert.

Üdv.

2014. okt. 31. 09:07
Hasznos számodra ez a válasz?
 3/43 A kérdező kommentje:

Ha nem voltam egyértelmű, akkor 6 fokosával lépkedve kell az a 60 koordináta!

Magyarul azok a koordináták kellenek, ahová egy óra másodpercmutatója szokott mutatni.

2014. okt. 31. 09:07
 4/43 A kérdező kommentje:

Ja, hogy ti már válaszoltatok!

Akkor előbb elolvasom a válaszokat. XD

2014. okt. 31. 09:07
 5/43 A kérdező kommentje:
Hát, ezek a képletek nekem bonyolultak...
2014. okt. 31. 09:10
 6/43 tabaki ***** válasza:

Na ne. Mégis, mit vártál? Wampa javaslata kevésbé, de a cooper-féle teljesen átlátható, csak értelmezd már egy kicsit.

Az általad megadott konkrét példától függetlenül:

1. Az egységnyi kör adott alfa szögéhez tartozó koordinátaértékek: X=cos(alfa), Y=sin(alfa).

(Ha nem világos, nézd át a szögfüggvényeket, kivált a „Definíció az egységsugarú kör ill. az egységvektor segítségével” című részt:)

[link]

2. A te köröd nem 1 egységnyi sugarú, hanem annak a többszöröse, ezért kell a koordinátaértékeket megszoroznod a sugárral.

3. A te köröd nem az origóban van, hanem eltolva, ezért kell minden pont X, Y értékeihez hozzáadni a középpont koordinátáit.

2014. okt. 31. 10:07
Hasznos számodra ez a válasz?
 7/43 anonim ***** válasza:
Szomorú.
2014. okt. 31. 10:08
Hasznos számodra ez a válasz?
 8/43 coopper ***** válasza:

Szia.


Ha ezek a képletek bonyolultak akkor, hagy az egészet a fenébe, hiszen ez még csak az első akadály.


Sorolom a többit : Ha megvannak a körvonalad koordinátáit, azok szerintem kevesek lesznek (max másodpercmutatóhoz, de szerintem az is egy 5-10 pixellel rövidebb kellene hogy legyen mint a kör - és ezen koordináták már nem felelnek meg), ezen analógián elindulva kelleni fog a "kismutató" illetve a "nagymutató" végének koordinátái is.


Szerintem egyszerübb ezen kordináták kiszámolása az adott képletekkel.


A köörvonal koordinátait megadom (de szerintem ezzel nem sokkal vagy előbre) innen letöltheted a példa programot ami rajzol egy kört - közben létrehoz egy koordinata.txt filét és abba beleirja a kör körvonalának koordinátáit) : [link]


Itt a virusellenőrzése is : [link]


Nem C#-ben iródott, igy forrást nem tudok prezentálni


Sok sikert.

Üdv.

2014. okt. 31. 10:09
Hasznos számodra ez a válasz?
 9/43 A kérdező kommentje:

Köszi! Ez is sokat segít azért. :)

De hogyan kellene pont a form közepére rajzolni azt a kört? Úgy akartam én is, de nem ment...

2014. okt. 31. 10:17
 10/43 A kérdező kommentje:

A körödet az én paramétereim szerint rajzoltad meg?

És a formod az 800x800-as?

2014. okt. 31. 10:25
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!