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
 31/43 A kérdező kommentje:

De annyi mindent magyaráztak!

Vagy 3 különböző válasz érkezett arra, hogy hogyan lesz a kör a formom közepén, de még mindig nincs ott!

2014. okt. 31. 19:40
 32/43 anonim ***** válasza:

Előszöris ne használj ékezetes betűket, és igyekezz angolul írni a változóneveket. (Tudom egyszer ki kell próbálni, én is csináltam, többször ne.)


A fájlból olvasást jól megcsináltad, gyakorlatilag a probléma a fájlbeli adatokkal van. Ha ezt kijavítod, középre fogja tenni az órádat.


b) matekosan:

int x = Convert.ToInt32(400 + 300 * Math.Sin(i * Math.PI * 6 / 180));

int y = Convert.ToInt32(400 - 300 * Math.Cos(i * Math.PI * 6 / 180)); //vagy 350 mindkét helyen a sugár, hogy kitöltse a lapot


(Ugyanitt magántanítást vállalok:)

2014. okt. 31. 19:42
Hasznos számodra ez a válasz?
 33/43 coopper ***** válasza:

Szia.


Egy megjegyzés előre : Nem vagyok C#-s.


Megnéztem, de nállam nem megy, mert fel kellene instalállni a net keretrendszer 4.5-est, azt most passzolnám.


De szerintem itt a hiba :


this.ClientSize = new System.Drawing.Size(784, 762);


A formod lehet hogy 800x800, de a felhasználható terület (clientsize) az nem annyi, az csak 784x762 pixeles.


Ebből következik, hogy az 50,50 pontba rajzolt 700 pixel átmérőjű kör természetes hogy a jobb szélhez és az aljához közelebb lesz, még pediglen 16 illetve 42 pixellel.


Sok sikert.

Üdv.

2014. okt. 31. 19:43
Hasznos számodra ez a válasz?
 34/43 anonim ***** válasza:

Hozz létre globális változókat:

int x0 = 784/2;

int y0 = 762/2;

int r = 350;


A mutató koordinátái:

int x = Convert.ToInt32(x0 + r * Math.Sin(i * Math.PI * 6 / 180));

int y = Convert.ToInt32(y0 - r * Math.Cos(i * Math.PI * 6 / 180));


A kör kirajzolása:

g.DrawEllipse(black, x0-r, y0-r, 2*r, 2*r);

2014. okt. 31. 20:27
Hasznos számodra ez a válasz?
 35/43 A kérdező kommentje:
Köszönöm az újabb válaszokat!
2014. nov. 1. 09:59
 36/43 A kérdező kommentje:

De #32-es!

A fájlban nem a kör, hanem a mutató koordinátái vannak.

Szóval előbb meg kéne tudni, hogy a 784x762-es részben hol lesz a kör középen, aztán kell a mutató végpontjainak a koordinátáit megváltoztatni.

Mondjuk ez érdekes, mert coopper azt mondta, hogy az én paramétereim szerint dolgozott, és amennyire én láttam, az ő programjában középen volt.

2014. nov. 1. 13:38
 37/43 A kérdező kommentje:
Upsz, akarom mondani #33-as. :D
2014. nov. 1. 13:39
 38/43 SimkoL ***** válasza:

Tegnap volt egy kis időm, átírtam a programodat remélem ilyet akartál. Lehet húzni, nyúzni, ahogy húzod a formot olyan alakú órás lesz. Magyarázatot ne várj mert az én világom a Delphi, egy kis gugli segítséggel írtam át C#-ba.


[link]

2014. nov. 2. 13:46
Hasznos számodra ez a válasz?
 39/43 A kérdező kommentje:
KÖSZ!! :)
2014. nov. 2. 21:24
 40/43 A kérdező kommentje:
De hogy tudtad olyan precízen elhelyezni a számokat?
2014. nov. 3. 15:55
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!