AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Umrechnung Kosinuswert/Winkel

Ein Thema von JulianT · begonnen am 8. Mär 2015 · letzter Beitrag vom 9. Mär 2015
 
JulianT
(Gast)

n/a Beiträge
 
#1

Umrechnung Kosinuswert/Winkel

  Alt 8. Mär 2015, 20:56
Schönen guten Abend,
ich bin neu im Bereich der Delphi Programmierung und es ist auch meine erste Programmiersprache. Ich habe nun folgendes Problem in Bezug auf Vektorenrechnung, an die ich mich herangetraut habe. Ich berechne Skalarprodukt, sowie Vektorbeträge von A und B. Später dann den cos_alpha Wert und lasse diesen ausgeben. Bei der folgenden Sache hapere ich nun. Ich möchte den cos Wert umrechnen in einen Winkel, aber da kommt dann immer nur ein Wert wie -0,99 oder 0,99 keine Ahnung, ich hab das Projekt leider nicht am Manne, nur den Quellcode dazu.

Kann mir jemand vlt bei meinem Problem helfen? Danke sehr!

Code:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    ButtonBerechne: TButton;
    ButtonAbbruch: TButton;
    Label1: TLabel;
    EditAx: TEdit;
    Label2: TLabel;
    EditAy: TEdit;
    Label3: TLabel;
    EditAz: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    EditBx: TEdit;
    Label6: TLabel;
    EditBy: TEdit;
    Label7: TLabel;
    EditBz: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    EditBetragA: TEdit;
    Label10: TLabel;
    EditBetragB: TEdit;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    EditCx: TEdit;
    Label14: TLabel;
    EditCy: TEdit;
    Label15: TLabel;
    EditCz: TEdit;
    Label16: TLabel;
    EditSkalarprodukt: TEdit;
    EditWinkel: TEdit;
    Label17: TLabel;
    EditCoswinkel: TEdit;
    procedure ButtonAbbruchClick(Sender: TObject);
    procedure ButtonBerechneClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ButtonAbbruchClick(Sender: TObject);
begin
Close;
end;

function ArcCos(x:real):real;
begin
    if x=0
      then Result:= Pi/2
      else Result:= ArcTan(sqrt(1-sqr(x))/x);
    if Result<0 then Result:= Result+Pi;
end;

function BogenZuGrad(AlphaBog:real):real;
begin
    result:=((2*Pi)/(360))*alphaBog;
{  result:=180*alphaBog/Pi;     }
end;


procedure TForm1.ButtonBerechneClick(Sender: TObject);

var VektorA, VektorB, Vektor0 : array[1..3] of integer;
    skalarprodukt : integer;
    betragA, betragB, cos_alpha, alphaBog, alphaGrad : real;

begin
//Jetzt werden die Werte eingelesen
VektorA[1]:=StrToInt(EditAx.Text);
VektorA[2]:=StrToInt(EditAy.Text);
VektorA[3]:=StrToInt(EditAz.Text);
VektorB[1]:=StrToInt(EditBx.Text);
VektorB[2]:=StrToInt(EditBy.Text);
VektorB[3]:=StrToInt(EditBz.Text);

//Berechnen und Ausgeben des Skalarproduktes
skalarprodukt:= vektorA[1]*vektorB[1]+VektorA[2]*VektorB[2]+VektorA[3]*VektorB[3];
EditSkalarprodukt.Text:=IntToStr(skalarprodukt);

//Ausgeben des Vektorbetrages A
BetragA:= sqrt(sqr(VektorA[1])+sqr(VektorA[2])+sqr(VektorA[3]));
EditBetragA.Text:=FloatToStr(BetragA);

//Ausgeben des Vektorbetrages B
BetragB:= sqrt(sqr(VektorB[1])+sqr(VektorB[2])+sqr(VektorB[3]));
EditBetragB.Text:=FloatToStr(BetragB);

//Berechnen des Vektorenwinkels
cos_alpha:=skalarprodukt/(BetragA*BetragB);
EditCoswinkel.Text:=FloatToStr(cos_alpha);
EditWinkel.Text:=FloatToStr(BogenZuGrad(alphaGrad));
end;

end.

Geändert von JulianT ( 8. Mär 2015 um 21:05 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz