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.
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!
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:)
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.
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);
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.
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.
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!