AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Array Zugriff

Ein Thema von Slashmob · begonnen am 27. Nov 2011 · letzter Beitrag vom 28. Nov 2011
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Array Zugriff

  Alt 27. Nov 2011, 22:07
Mein Vorschlag wäre, nur die ganzzahligen Winkel zu vertafeln und Zwischenwerte geradlinig zu interpolieren.

Delphi-Quellcode:
var
  CosTable: array [0..90] of double;

function CosFromCosTable(Alpha: integer): double;
var
  I: integer;
begin
  while Alpha < 0 do Inc(Alpha, 360);
  while Alpha > 360 do Dec(Alpha, 360);
  I:= 1;
  if Alpha > 180 then
  begin
    Dec(Alpha, 180);
    I:= -1;
  end;
  if Alpha <= 90 then
    Result:= I * CosTable[Alpha]
  else
    Result:= - I * CosTable[180 - Alpha];
end;

function SinFromCosTable(Alpha: integer): double;
begin
  Result:= CosFromCosTable(90 - Alpha);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Alpha: integer;
begin
  for Alpha:= 0 to 90 do
    CosTable[Alpha]:= Cos(Alpha * 0.0174532925199433);
end;
  Mit Zitat antworten Zitat
Benutzerbild von MGC
MGC

Registriert seit: 15. Mai 2008
Ort: Helsa
106 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Array Zugriff

  Alt 28. Nov 2011, 08:04
Ich sehe schon, es wurden bereits spitzenmäßige Ansätze übermittelt. Wobeio ich jedoch ein multidimensionales Array bevorzugen würde, wobei der Wuadrant bereits als erster Index dienen würde. Auf diese Weise kann man, meiner Meinung nach, schneller und übersichtlicher durch das Array navigieren udn seine Vergleichswerte auslesen.

Viele Grüße,
Marc
Programmieren ist wie Chemie:
1. Wenn man alles einfach nur zusammenschmeisst kommt es zu unerwarteten Reaktionen.
2. Wenn es plötzlich anfängt zu qualmen, muss man eben noch mal von vorn anfangen.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Array Zugriff

  Alt 28. Nov 2011, 09:26
Ich sehe schon, es wurden bereits spitzenmäßige Ansätze übermittelt. Wobeio ich jedoch ein multidimensionales Array bevorzugen würde, wobei der Wuadrant bereits als erster Index dienen würde. Auf diese Weise kann man, meiner Meinung nach, schneller und übersichtlicher durch das Array navigieren udn seine Vergleichswerte auslesen.

Viele Grüße,
Ähmmm, das Salz in der Suppe bei diesem Ansatz ist es doch, dass nur die Werte für den ersten Quadranten berechnet und abgespeichert werden.
Alle Werte für die Quadranten 2-4 werden aufgrund der Werte vom Quadranten 1 ermittelt, die sich ja auch lediglich durch ein Vorzeichen, bzw. die Reihenfolge unterscheiden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Slashmob

Registriert seit: 28. Okt 2011
45 Beiträge
 
#4

AW: Array Zugriff

  Alt 28. Nov 2011, 14:20
Ich sehe schon, es wurden bereits spitzenmäßige Ansätze übermittelt. Wobeio ich jedoch ein multidimensionales Array bevorzugen würde, wobei der Wuadrant bereits als erster Index dienen würde. Auf diese Weise kann man, meiner Meinung nach, schneller und übersichtlicher durch das Array navigieren udn seine Vergleichswerte auslesen.

Viele Grüße,
Ähmmm, das Salz in der Suppe bei diesem Ansatz ist es doch, dass nur die Werte für den ersten Quadranten berechnet und abgespeichert werden.
Alle Werte für die Quadranten 2-4 werden aufgrund der Werte vom Quadranten 1 ermittelt, die sich ja auch lediglich durch ein Vorzeichen, bzw. die Reihenfolge unterscheiden.
Richtig!

@all: Hab jetzt mein Problem mit euren Ansätzen lösen können. Funktioniert alles wunderbar!
Vielen Dank euch allen!
  Mit Zitat antworten Zitat
Benutzerbild von MGC
MGC

Registriert seit: 15. Mai 2008
Ort: Helsa
106 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Array Zugriff

  Alt 28. Nov 2011, 21:00
Ähmmm, das Salz in der Suppe bei diesem Ansatz ist es doch, dass nur die Werte für den ersten Quadranten berechnet und abgespeichert werden.
Alle Werte für die Quadranten 2-4 werden aufgrund der Werte vom Quadranten 1 ermittelt, die sich ja auch lediglich durch ein Vorzeichen, bzw. die Reihenfolge unterscheiden.
Zitat:
Ziel ist es alleine durch die obige Cos-Tabelle (0°-90°) die Werte von Sinus, Cosinus und Tangens im Bereich von 0° bis 360° zu "berechnen", indem man die richtigen Verhältnisse von Cos aus dem ersten Quadranten zu den übrigen Quadranten erstellt.
@Sir Rufo:

Uups... da habe ich mal wieder bewiesen, dass ich 1.) nicht aufmerksam genug gelesen habe und 2.) erneut vorgeführt, dass ich eine mathematische Niete bin.

Was mir aber wirklich unheimlich wird, warum erwischst ausgerechnet immer Du mich dabei?
Marc
Programmieren ist wie Chemie:
1. Wenn man alles einfach nur zusammenschmeisst kommt es zu unerwarteten Reaktionen.
2. Wenn es plötzlich anfängt zu qualmen, muss man eben noch mal von vorn anfangen.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:19 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