Frage von HtmlDev, 60

[php] Kann man den Winkel aus dem Radius und der Teilfläche berechnen?

Hallo,

ich weiß wie man diese Aufgabe löst. Allerdings kann ich keine passende Formel aufstellen, die man auch in der php Programmierung benutzen kann.

Folgendes Problem:

 $radius = $_POST['radius'];
 $teilflaeche = $_POST['teilflaeche'];
 $winkel = 360*$kreisbogen/(2*pi()*$radius);
 $kreisbogen = 2*pi()*$radius*($winkel/360);

Die beiden Variablen $winkel und $kreisbogen behindern sich gegenseitig, da sie sich beide zum berechnen benötigen.

Kann mir da jemand weiterhelfen wie man den Code umschreiben müsste?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von PeterKremsner, 49

Ich nehme mal an du meinst einen Kreissektor.

Die Sektorfläche ist r²*Pi*Winkel/360 bzw 1/2*L*r wobei L die Länge des Bogens ist.

Wenn du die Formel auch noch zur Berechnung heranziehst kannst du das Problem beheben.

Kommentar von HtmlDev ,

Ich meinte eigentlich ob ich den Winkel berechnen kann ohne den Kreisbogen zu wissen.

Kommentar von PeterKremsner ,

Ja du hast als Eingabe den Radius und die Fläche.

Für deine Berechnungen verwendest du aber nur den Radius, wenn du die Fläche auch noch in deine Berechnungen einfließen lässt kannst du den Winkel und den Kreisbogen aus den Werten berechnen.

Wenn du nur den Radius verwendest hast du 1 Gleichung und 2 Unbekannte, das kann sich so nicht ganz ausgehen...

Oder wenn du eine fertige Formel willst:

Wenn deine Fläche A = r²*Pi*Winkel/360 ist, dann kannst du das Umformen:

Winkel = A*360/(r²*PI)

damit kannst du den Winkel ohne den Kreisbogen berechnen weil du somit den Winkel kennst kannst du jetzt auch den Kreisbogen berechnen:

L = 2*PI*r*Winkel/360

Wenn du jetzt den Winkel von oben einsetzt:

L = 2*A/r

Zusammengefasst:

winkel = A*360/(r²*PI)

L = 2*A/r

wobei:

  • A deine Teilfläche ist
  • r der Radius ist
Kommentar von HtmlDev ,

Super Danke

Ich habe lediglich nur eine Zeile umgeschrieben:

$winkel = $teilflaeche*360/(pow($radius, 2)*pi());

Aber jetzt funktioniert alles wie es soll :)

Kommentar von PeterKremsner ,

Ja das Funktioniert so auch, allerdings würde ich den Kreisbogen mit der Formel 2*A/r berechnen, das ist genauer weil du dir dadurch nicht die Fehler von der Berechnung des Winkels einhandelst.

Expertenantwort
von Volens, Community-Experte für Mathe & Mathematik, 30

Wenn ich mir die Programmierung so angucke,
da war ja jeder Assembler übersichtlicher,
von COBOL und FORTRAN ganz zu schwiegen.
(C++ erwähne ich lieber gar nicht.)

Es wird mal wieder Zeit für eine verständliche, aussagefähige Programmiersprache für alle Systeme!

Kommentar von PeterKremsner ,

Ist finde ich keine Schwäche der Programmiersprache sondern der Implementierung hier, wobei das Konzept der dynamischen Typisierung doch sehr eigen ist.

Java und C# sind finde ich persönlich schön zu lesen und auch übersichtlich (sofern der Programmierer drauf geachtet hat).

Kommentar von Volens ,

Ich störe mich an den zahlreichen Sonderzeichen und ihren Bedeutungen.
Beim COBOL hieß es:

ADD A TO B.
Das war selbstdokumentierend (bis zum Sündenfall mit dem COMPUTE-Befehl). Aber ich will hier nicht alles von Cobol und Fortran wieder auseinanderwickeln. Klar, dass die Onlineprogrammierung diese Sprachen in Schwierigkeiten brachte. Bedauerlich nur, dass kein fähiger Informatiker sich bisher fand, diese Vorteile wieder zu generieren.
Wie die alten Assembler-Programmierer sagten: dies ist mein Königreich, da lasse ich keinen reinblicken. Gottseidank versteht's ja auch keiner.
Mit dieser Denke hat der COBOL damals aufgeräumt.

Antwort
von KKKKKKK, 6

Es muss heißen:

 $radius = $_POST['radius'];
$teilflaeche = $_POST['teilflaeche'];
$winkel = 360*$teilflaeche/(pi()*$radius*$radius);
$kreisbogen = 2*$teilflaeche/$radius;

Keine passende Antwort gefunden?

Fragen Sie die Community