Zjištění koordinátů z úhlu   zodpovězená otázka

VB.NET, Algoritmy

Zdravím,

rád bych se zeptal, jak lze zjistit koordináty jednoho bodu z kružnice, když znám úhel.

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

zkuste tohle:

Dim koorX As Single = Math.Sin(uhel_radiany)
Dim koorY As Single = Math.Cos(uhel_radiany)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

a mohl byste mi prosím napsat vzorec na konverzi stupňů na radiány?

Děkuji

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

omlouvám se, ale zapomněl jsem říci, že když supstím 360x cyklus na zjištění koordinátů a vykreslím body, měla by mi vzniknout kružnice. Ve Vašem kódu mi chyby PI.

Přeji hezký den

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ne, je to správně. Musíte udělat cyklus od 0 do 2 * Math.PI (a neskákat po jedničce, ale po drobnějším intervalu) a dosazovat tuto hodnotu do uvedených vzorců pro výpočet souřadnic.

To celé ale vynásobte poloměrem kružnice, protože funkce sinus a kosinus vrací pouze hodnoty od -1 do 1.

Dim bmp As New Bitmap(120, 120)
For i As Double = 0 To Math.PI * 2 Step 0.01
    bmp.SetPixel(60 + 50 * Math.Sin(i), 60 + 50 * Math.Cos(i), Color.Black)
Next
Me.BackgroundImage = bmp

Otázkou je, proč nepoužít DrawEllipse.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nechci Vás opravovat, jen tazateli sděluji žádané (Math.PI * uhel_stupne / 180.0

):

    Dim uhel_stupne As Double
  '  žádaný vzorec na převod: 
    Dim uhel_radiany As Double = Math.PI * uhel_stupne / 180.0
 

Mám v geom. úlohách lepší představu se stupních, tazatel možná také.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji, na to jsem zapomněl, ale je nutno podotknout, že funkce Sin a Cos vyžadují ve VB.NET parametry v radiánech, jinak pochopitelně nevyhodí správný výsledek.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zdravím,

ptáte se proč nepoužít DrawEllipse. Ospověď je taková, že chci vytvořit proceduru, která dostane jako argument úhel ve stupních a na obrázek vykreslí čáru od středu obrázku, v zadaném úhlu, ale ne až ke kraji obrázku, ale jen na vzdálenost poloměru.

Přeji hezký den

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak to potom ano.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

jak mám doplnit tento kód, aby mi vracel koordináty jednotlivých bodu na kružnici?

        'Uhly jsou ve stupnich
        Dim PointX = Math.Sin((Math.PI / 180) * Uhel)
        Dim PointY = Math.Cos((Math.PI / 180) * Uhel)

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takhle:

Dim PointX As Double = Math.Sin((Math.PI / 180) * Uhel)
Dim PointY As Double = Math.Cos((Math.PI / 180) * Uhel)
Dim X As Double = PointX * polomer + stredX
Dim Y As Double = PointY * polomer + stredY

stredX a stredY jsou souřadnice středu kružnice a polomer je poloměr v pixelech.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Snad trochu přispěji obecnou úvahou. Budu-li řešit geometrickou úlohu s kružnicí na papíru, je pro mne střed kružnice středem celé úlohy a od něho se odvíjí moje představy. V programu a na obrazovce je to jinak. Vše se odvíjí od levého horního rohu, souřadníce X=0, Y=0 a kružnice začíná svými okraji (vlevo a nahoře) a má šířku a výšku - žádný střed kružnice tu v podstatě není.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback