AGB  ·  Datenschutz  ·  Impressum  







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

wieder konvertierungs problem

Ein Thema von EWeiss · begonnen am 21. Mär 2007 · letzter Beitrag vom 25. Mär 2007
Antwort Antwort
Seite 2 von 4     12 34      
Nuclear-Ping
(Gast)

n/a Beiträge
 
#11

Re: wieder konvertierungs problem

  Alt 21. Mär 2007, 20:12
Alternativ gänge auch eine repeat- oder while-Schleife.
Delphi-Quellcode:
lphi := 0;
while (lphi < 189.0) do
  begin
    ...
    lphi := lphi + 13.5;
  end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: wieder konvertierungs problem

  Alt 21. Mär 2007, 20:19
Hallo Mario,

sobald du Float-Werte zur (Schleifen-)Steuerung benutzt, arbeitest du nicht mehr mit exakten, sondern mit Schwellwerten. Darüberhinaus musst du dann wegen der möglichen Abbildungsfehler oft eine Epsilon-Umgebung betrachten. Es ist wirklich besser Integer-Werte zu benutzen, wenn es irgendwie möglich ist.

Freundliche Grüße
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#13

Re: wieder konvertierungs problem

  Alt 21. Mär 2007, 20:28
Aha, eigentlich logisch, aber gewußt habe ich es noch nicht. Danke für den Tip.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

Re: wieder konvertierungs problem

  Alt 21. Mär 2007, 20:39
Zitat von Nuclear-Ping:
Alternativ gänge auch eine repeat- oder while-Schleife.
Delphi-Quellcode:
lphi := 0;
while (lphi < 189.0) do
  begin
    ...
    lphi := lphi + 13.5;
  end;
wobei es hier auch wieder probleme mit der Berechnung gibt.

for lphi : = 202.5 to 229.5 do
Zitat:
229.5-202.5/13.5
Gut hier wäre der teiler 2 kann aber nicht bei null anfangen

Das würde ja dann nicht mehr funktionieren!
lphi := 13.5 * i habe es so gelößt

Delphi-Quellcode:
      glColor3f(1.0,1.0,0.0);
    lphi := 202.5;
      for i := 1 to 2 do
      begin
      if not (lphi = 216) then
        lphi := lphi + 13.5 * i
      else
        lphi := lphi + 13.5;
gibt bestimmt eine intelligentere methode(berechnung)

gruss Emil
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: wieder konvertierungs problem

  Alt 21. Mär 2007, 20:42
Direkt aus der Abteilung Transferwissen:

Delphi-Quellcode:
for i := 15 to 17 do
begin
  lphi := 13.5 * i;
  // ...
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#16

Re: wieder konvertierungs problem

  Alt 21. Mär 2007, 20:45
Zitat von marabu:
Direkt aus der Abteilung Transferwissen:

Delphi-Quellcode:
for i := 15 to 17 do
begin
  lphi := 13.5 * i;
  // ...
end;
Freundliche Grüße
ich bekomme die Krise .... heheheheh stimmt
so einfach doch so umständlich(von mir)

gruss Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

Re: wieder konvertierungs problem

  Alt 21. Mär 2007, 21:54
ein prob hab ich noch dann läufts..

Code:
   lmax=0;
   rmax=0;
   for (i=0; i<576;i++)
   {
      ltemp=abs(wavedata[i]);
      if (ltemp>lmax) lmax=ltemp;
   }
   for (i=0; i<576;i++)
   {
      rtemp=abs(wavedata[i+576]);
      if (rtemp>rmax) rmax=rtemp;
   }

   lphi=(float)lmax;
   rphi=(float)rmax;
Delphi-Quellcode:
   

   lmax := 0;
   rmax := 0;

   for i := 0 to 576 do
   begin
      ltemp := abs(wavedata[i]);
      if (ltemp>lmax) then
      lmax := ltemp;
   end;

   for i := 0 to 576 do
   begin
      rtemp := abs(wavedata[i+576]);
      if (rtemp>rmax) then
      rmax := rtemp;
   end;

   lphi := lmax;
   rphi := rmax;
Die beiden Werte
Delphi-Quellcode:
   lphi := lmax;
   rphi := rmax;
müßten wieder nach single konvertiert werden da sonst integer angenommen wird.
Dann sind die werte aber zu hoch und die VU ist auf anschlag.

PS: Gibt es eigentlich keine Grundregeln wie Integer zu single konvertiert werden kann?
Ähnlich wie FloatToStr usw...

Float wäre doch auch in Delphi single warum gibt es dann nicht sowas wie IntToFloat

gruss Emil
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: wieder konvertierungs problem

  Alt 22. Mär 2007, 09:35
Hallo Emil,

wenn wavedata ein array of Integer ist, dann geht es auch so:

Delphi-Quellcode:
uses
  Math;

var
  lphi, rphi: Single;
  wavedata: array of Integer;

begin
   lphi := MaxIntValue(Copy(wavedata, 0, 576));
   rphi := MaxIntValue(Copy(wavedata, 576, 576));
end;
Eine Konvertierung von Integer nach Float kann der Compiler automatisch vornehmen. Umgekehrt ist es wegen des Informationsverlustes in Pascal (Pascal ist nicht Basic oder Perl - alles ist strikt) nicht erlaubt, sodass du Trunc() oder andere Funktionen benutzen musst.

Freundliche Grüße
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

Re: wieder konvertierungs problem

  Alt 22. Mär 2007, 09:51
Zitat von marabu:
Hallo Emil,

wenn wavedata ein array of Integer ist, dann geht es auch so:

Delphi-Quellcode:
uses
  Math;

var
  lphi, rphi: Single;
  wavedata: array of Integer;

begin
   lphi := MaxIntValue(Copy(wavedata, 0, 576));
   rphi := MaxIntValue(Copy(wavedata, 576, 576));
end;
Eine Konvertierung von Integer nach Float kann der Compiler automatisch vornehmen. Umgekehrt ist es wegen des Informationsverlustes in Pascal (Pascal ist nicht Basic oder Perl - alles ist strikt) nicht erlaubt, sodass du Trunc() oder andere Funktionen benutzen musst.

Freundliche Grüße
Supi Danke für die Infos ...
Habe mir erlaubt dir eine PN zu schicken.

Aber hier die Deklaration von wavedata
Delphi-Quellcode:
Type
  TWaveData = Array[0..576] Of byte;
  PWaveData = ^TWaveData;
end;
Daten werden so eingelesen!
wavedata := @This_Mod^.WaveformData[0][0]; In der PN habe ich mal näher geschildert (als ich die Antwort hier noch nicht kannte)
wo das problem liegt.

Ich denke die berechnung über 'abs' so wie ursprünglich aufgeführt kann nicht funktionieren
da die variablen ganz anderes deklariert sind in c++
Bekomm auch unabhängig jetzt von der konvertierung immer einen wert von 255.
Was noch erschwerend hinzukommt ist halt das die konvertierung nach Single kläglich scheitert.

Deine Variante habe ich mal geprüft geht aber wegen dem Array nicht..
Werd mal versuchen die umzustricken.
EDIT: geht nicht wieder wegen konvertierungs problemen..

Danke wie immer Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#20

Re: wieder konvertierungs problem

  Alt 24. Mär 2007, 10:17
Muss das nochmal aufgreifen.
Irgendwie will das immer noch nicht.

Sieht aus wie ein schleichendes irgendetwas hat aber nichts mit der
Visualisierung eines realen VU Meters zu tun.

Niemand ne Idee wo oder was da falsch sein könnte ?

Der Quelltext ist im SourceCode Forumsbereich.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz