Jaka jest metoda przeliczania radianów na stopnie?


156

Czasami napotykam na to i zawsze zapominam, jak to zrobić.

Jedna z tych rzeczy, które pojawiają się tak często.

Jaki jest wzór na zamianę kątów wyrażonych w radianach na stopnie iz powrotem?


4
Nie rozumiem, dlaczego ludzie to odrzucają; niektórzy ludzie nie mają skłonności matematycznych.
thesmallprint

1
to tylko kwestia frazowania. Przeformułowałem to jako problem programistyczny, a nie problem matematyczny, i voila, pasuje.
DevelopingChris,

3
Tytuł tego pytania nie ma sensu. „Metoda [B] wbudowana” --- w czym jest wbudowana?
Michael J. Barber,

1
mam zamiar zapytać o metodę przeliczania stopni Celsjusza na Fahrenheita iz powrotem, ciągle o tym zapominam
Alex

7
StackOverflow to więcej niż forum pytań i odpowiedzi. To miejsce odniesienia. Pierwotnie postawiłem to pytanie jako pytanie referencyjne, ponieważ jest naprawdę bardzo powszechne. Należy tutaj, więc gdy ktoś odpowie „Tylko wygoogluj”, Google skieruje Cię tutaj.
Hans Sjunnesson

Odpowiedzi:


273
radians = degrees * (pi/180)

degrees = radians * (180/pi)

Jeśli chodzi o implementację, głównym pytaniem jest to, jak precyzyjnie chcesz określić wartość pi. Jest jakiś pokrewny dyskusja tutaj


11
Pi = 4 * ArcTan (1) może być stosowany w przypadku, gdy nie ma na ciebie Pi System / kalkulator lub po prostu nie chcą, aby wpisać je ze wszystkich miejsc po przecinku
Axel Kemper

21
Może nie było to dostępne w 2008 roku, ale obecnie możesz po prostu użyć Math.PIstałej.
Bart,

1
@Hogun Etykiety jednostek to nie to samo, co zmienne algebraiczne. Kiedy mówisz „radianów PI = 180 stopni”, mówisz w jednostkach, co odpowiada stwierdzeniu „1 stopa = 12 cali”. Nie bierzesz wtedy etykiet jednostek i nie traktujesz ich jako zmiennych, co dałoby oczywiście błędne równanie „stopy = 12 * cali”.
Dave Costa

1
Nie ma potrzeby stosowania stopni parens = radianów * 180 / Math.PI; radiany = stopnie * Math.PI / 180;
Paweł

2
@Pawel Chociaż masz rację, ośmielę się powiedzieć, że autor użył parens, aby przekazać koncepcję dotyczącą tego, jak funkcja łączy się koncepcyjnie.
Jacksonkr,

10

pełne koło w radianach to 2 * pi. Pełne koło wyrażone w stopniach to 360. Aby przejść od stopni do radianów, to (d / 360) * 2 * pi lub d * pi / 180.


9

x radów w stopniach -> x * 180 / pi
x stopni w radach -> x * pi / 180

Myślę, że gdybyś chciał zrobić dla tego funkcję [w PHP]:

function convert($type, $num) {
    if ($type == "rads") {
          $result = $num*180/pi();
        }

    if ($type == "degs") {
          $result = $num*pi()/180;
        }

    return $result;
  }

Tak, prawdopodobnie można by to lepiej napisać.


4

W javascript możesz to zrobić w ten sposób

radians = degrees * (Math.PI/180);

degrees = radians * (180/Math.PI);

1

To działa wystarczająco dobrze dla mnie :)

// deg2rad * degrees = radians
#define deg2rad (3.14159265/180.0)
// rad2deg * radians = degrees
#define rad2deg (180/3.14159265)



0

360 stopni = 2 * pi radianów

To oznacza deg2rad (x) = x * pi / 180 i rad2deg (x) = 180x / pi;


0

pi Radianów = 180 stopni

Czyli 1 stopień = pi / 180 radianów

lub 1 radian = 180 / pi stopni


0

W przypadku podwójnego w c # może to być pomocne:

        public static double Conv_DegreesToRadians(this double degrees)
        {
            //return degrees * (Math.PI / 180d);
            return degrees * 0.017453292519943295d;
        }
        public static double Conv_RadiansToDegrees(this double radians)
        {
            //return radians * (180d / Math.PI);
            return radians * 57.295779513082323d;
        }

0

Oto kod, który rozszerza Object o rad(deg), deg(rad)a także dwie inne przydatne funkcje: getAngle(point1,point2)i getDistance(point1,point2)gdzie punkt musi mieć właściwość xi y.

Object.prototype.rad = (deg) => Math.PI/180 * deg;
Object.prototype.deg = (rad) => 180/Math.PI * rad;
Object.prototype.getAngle = (point1, point2) => Math.atan2(point1.y - point2.y, point1.x - point2.x);
Object.prototype.getDistance = (point1, point2) => Math.sqrt(Math.pow(point1.x-point2.x, 2) + Math.pow(point1.y-point2.y, 2));

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.