Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:18.2.2013 16:20

Chtěl jsem se zeptat jestli někdo nevíte jak mam převést sinus úhlu do stupňů? Předem díky za případnou odpověď :)

Odpovědět 18.2.2013 16:20
Přecházím na "Cross-Platform Development"
Avatar
Odpovídá na Theodor Johnson
Luboš Běhounek (Satik):18.2.2013 16:23

pseudokód by byl asi takovejhle:

radtodeg(arcsin(x));

přičemž převod z radiánů na stupně je jen násobení konstantou :)

Editováno 18.2.2013 16:24
Nahoru Odpovědět 18.2.2013 16:23
:)
Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:18.2.2013 16:53

Tak mám trošku větší problém než jsem čekal, v podstatě jsem se snažil zjistit úhel určitého bodu od jiného bodu, ale furt tam mam asi něco špatně

double sideA = Math.Abs(label2.Location.Y - MousePosition.Y);

double sideB = ((label2.Location.X - MousePosition.X) * (label2.Location.X - MousePosition.X)) + ((label2.Location.Y - MousePosition.Y) * (label2.Location.Y - MousePosition.Y));

label1.Text = Math.Asin(sideA / sideB).ToString();
  1. bod - label2.Location
  2. bod - MousePosition
Editováno 18.2.2013 16:56
Nahoru Odpovědět 18.2.2013 16:53
Přecházím na "Cross-Platform Development"
Avatar
Kit
Redaktor
Avatar
Odpovídá na Theodor Johnson
Kit:18.2.2013 17:10

Proč tam počítáš tu absolutní hodnotu?

Možná jsi zapomněl sideB odmocnit.

Nahoru Odpovědět 18.2.2013 17:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Kit
Theodor Johnson:18.2.2013 17:15

Tu abs jsem tam měl aby délka strany nevyšla záporný číslo

Jo odmocnit jsem vážně zapoměl, ale nepomohlo mi to, teď mi to kolem dokola vypisuje hodnotu od 0.003 do 0.013

Nahoru Odpovědět 18.2.2013 17:15
Přecházím na "Cross-Platform Development"
Avatar
Kit
Redaktor
Avatar
Odpovídá na Theodor Johnson
Kit:18.2.2013 17:27

A proč to nenacpeš do nějaké metody třeba k té myši? Takhle v tom nasekáš hromadu chyb.

Nahoru Odpovědět 18.2.2013 17:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:18.2.2013 17:28

Zkusil jsem to znovu předělat, ale pořád to neni dobrý

double sideA = Math.Abs(label2.Location.Y - MousePosition.Y);
double sideB = Math.Abs(label2.Location.X - MousePosition.X);
label1.Text = (Math.Atan2(sideA, sideB) * 57.2957795).ToString(); // * 57.2957795 je pro převod z rad do deg
Nahoru Odpovědět 18.2.2013 17:28
Přecházím na "Cross-Platform Development"
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Kit
Theodor Johnson:18.2.2013 17:29

Teď tě trochu nechápu, já se snažim vytvořit stejnou funkci jako je v GML point_direction, a tam to nemam kam dát k myši

Nahoru Odpovědět 18.2.2013 17:29
Přecházím na "Cross-Platform Development"
Avatar
Kit
Redaktor
Avatar
Odpovídá na Theodor Johnson
Kit:18.2.2013 17:41

MousePosition je tam jako final? Pokud ne, tak to můžeš zdědit. Také to můžeš přidat k labelu nebo to udělat jako statickou metodu.

Ta absolutní hodnota se dělá až na výsledek. Ve výpočtu nemá co pohledávat.

Nahoru Odpovědět 18.2.2013 17:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Kit
Theodor Johnson:18.2.2013 18:26

Na to MousePosition nemam metodu to je součást Control.Mouse­Position

Já na tom nemam moc co upravovat, to je skoro prázdnej program, všechno co obsahuje je:

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                double sideA = (label2.Location.Y - MousePosition.Y);
                double sideB = (label2.Location.X - MousePosition.X);
                label1.Text = Math.Abs(Math.Atan2(sideA, sideB) * 57.2957795).ToString(); // * 57.2957795 je pro převod z rad do deg
            }
            catch { }
        }
    }
}
Nahoru Odpovědět 18.2.2013 18:26
Přecházím na "Cross-Platform Development"
Avatar
Odpovídá na Theodor Johnson
Luboš Běhounek (Satik):18.2.2013 18:42

Pokud bys tam chtěl ten úhel někde dál používat, tak to abs vyhoď úplně, dělalo by tam jen problémy.

Pokud chceš ten úhel mít v rozmezí 0°-360°, tak jen zjisti, jestli je úhel menší než nula - pak přičti k úhlu 360, jinak to nech být.

A ta poslední verze ti už funguje, ne?

Nahoru Odpovědět 18.2.2013 18:42
:)
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Theodor Johnson:18.2.2013 18:54

Právě že ta poslední nefunguje dobře, meří od 0 - cca180, ale neměří úhel, ale vzdálenost myši k label2

Nahoru Odpovědět 18.2.2013 18:54
Přecházím na "Cross-Platform Development"
Avatar
Odpovídá na Theodor Johnson
Luboš Běhounek (Satik):18.2.2013 19:07

Ale funguje dobře a měří úhel.

Problém je úplně jinde - MousePosition je pozice na obrazovce a label.location je pozice na formuláři .

EDIT: A vyhoď ten abs

Editováno 18.2.2013 19:08
Nahoru Odpovědět 18.2.2013 19:07
:)
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Theodor Johnson:18.2.2013 19:18

Díky, vůbec jsem si to neuvědomil že ten label je vlastně vzhleme k myši někde uplně jinde, ale stejně mi přijde že tam někde malá chybka bude, když kolem label2 kroužim myší tak se chvilku mění třeba o 5, a pak najednou třeba o 30

Nahoru Odpovědět 18.2.2013 19:18
Přecházím na "Cross-Platform Development"
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.