AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wertebereich von -X bis +X erstellen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wertebereich von -X bis +X erstellen ?

Ein Thema von turboPASCAL · begonnen am 18. Okt 2008 · letzter Beitrag vom 3. Nov 2008
Antwort Antwort
Seite 2 von 3     12 3      
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Wertebereich von -X bis +X erstellen ?

  Alt 18. Okt 2008, 15:47
Du willst aber keinen Kexgen erstellen oder? Sieht für mich so aus
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#12

Re: Wertebereich von -X bis +X erstellen ?

  Alt 18. Okt 2008, 15:50
Ja, was zum Essen

Erzeugt eine Zufallszahl zwischen -x und x
Code:
        private int MyRandom(int x)
        {
            Result = Random(2 * x + 1) - x;
        }
Achtung - Kompiliert nicht
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#13

Re: Wertebereich von -X bis +X erstellen ?

  Alt 18. Okt 2008, 15:57
@Larsi,
Doch. Ich muss nur noch jemanden Überreden eim Programm passend zu meinem Keksgen zu schreiben.


@jfheins Ja, eine Zufallszahl zwischen -x und x. Das ist aner nicht das Problem an sich,
das Loch in der Mitte ist es.

Siehe bildliche Beschreibung in Post #7.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#14

Re: Wertebereich von -X bis +X erstellen ?

  Alt 18. Okt 2008, 16:08
Zitat von turboPASCAL:
@Larsi,
Doch. Ich muss nur noch jemanden Überreden eim Programm passend zu meinem Keksgen zu schreiben.
Auja, ein Keksgenerator hätte was Dann hab ich auch was zum naschen

Zitat:
@jfheins Ja, eine Zufallszahl zwischen -x und x. Das ist aner nicht das Problem an sich,
das Loch in der Mitte ist es.

Siehe bildliche Beschreibung in Post #7.
Wie gesagt, meine Funktion erfüllt den Zweck 100%ig. Die Zufallszahlen sind auch gleich verteilt.

Deshalb ja meine Frage, wie du von den Zufallszahlen zu den Punkten kommst
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#15

Re: Wertebereich von -X bis +X erstellen ?

  Alt 18. Okt 2008, 17:04
Achso, so:

Delphi-Quellcode:
procedure some...;
const
  WBMax = 150;
  WBMin = 50;

  function MyRandom(minRange, maxRange: Integer): Integer;
  const
    iSigns: array[0..1] of Integer = (1, -1);
  begin
    Result := (Random(maxRange + 1)) * iSigns[Random(2)];
  end;

begin
  for i := 0 to high(p3d) do
  begin
    p3d[i].X := MyRandom(WBMin, WBMax);
    p3d[i].Y := MyRandom(WBMin, WBMax);
    p3d[i].Z := MyRandom(WBMin, WBMax);
  end;
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#16

Re: Wertebereich von -X bis +X erstellen ?

  Alt 18. Okt 2008, 17:10
Du benutzt aber schon randomize, oder?

Edit: Wenn du gerne eine Kugel aus den Punten haben willst, solltest du in Kugelkoordinaten rechnen, beide Winkel zufällig wählen und den Radius mehr oder weniger zufällig wählen, und das dann in kartesische Koordinaten umrechnen
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#17

Re: Wertebereich von -X bis +X erstellen ?

  Alt 18. Okt 2008, 17:17
Zitat:
Du benutzt aber schon randomize, oder?
Klar.

Nur wie gesagt ich bekomme immer diesen Gruppeneffekt. Ich muss mir wohl doch das Kugelkoordinatendings antun.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#18

Re: Wertebereich von -X bis +X erstellen ?

  Alt 29. Okt 2008, 11:06


(Simmt zwar noch nicht so recht, passt aber)
Angehängte Dateien
Dateityp: exe tp_s_keksgen_206.exe (54,4 KB, 17x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Wertebereich von -X bis +X erstellen ?

  Alt 29. Okt 2008, 13:09
Zitat von turboPASCAL:
Achso, so:

Delphi-Quellcode:
procedure some...;
const
  WBMax = 150;
  WBMin = 50;

  // Berechnet einen Zufallswert zwischen minRange und MaxRange
  // Dieser Wert wird zufällig positiv oder negativ zurückgegeben werden
  function MyRandom(minRange, maxRange: Integer): Integer;
  const
    iSigns: array[0..1] of Integer = (1, -1);
  begin
    // Result := (Random(maxRange + 1)) * iSigns[Random(2)];
    Result := minRange + (Random(maxRange + 1)) * iSigns[Random(2)];
  end;

begin
  for i := 0 to high(p3d) do
  begin
    p3d[i].X := MyRandom(WBMin, WBMax);
    p3d[i].Y := MyRandom(WBMin, WBMax);
    p3d[i].Z := MyRandom(WBMin, WBMax);
  end;
end;
Hast du hier nicht einfach nur das minRange vergessen?

Gruß
Ansgar

PS: Bei deinen Downloads meckert mein Kaspersky: Das angeforderte Objekt ist mit folgenden Viren INFIZIERT: Multi.Packed
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#20

Re: Wertebereich von -X bis +X erstellen ?

  Alt 29. Okt 2008, 14:25
Zitat:
Hast du hier nicht einfach nur das minRange vergessen?
Nein, nicht direkt.

Genauer müsste die Procedure so aussehen:
Delphi-Quellcode:
function RandomFromTo(minRange, maxRange: Integer): integer;
const
  iSigns: array[0..1] of Integer = (1, -1);
begin
  Result := (minRange + Random((maxRange-minRange) + 1)) * iSigns[Random(2)];
end;
Das bringt aber leider nix da das Resultat eher komisch im Ergebnis wie oben beschrieben ausschaut.

Absolut nicht Perfekt aber Funktionsfähig wie gewünscht wird es zur Zeit so errechnet:
Delphi-Quellcode:
function MyRandom(minRange, maxRange: Integer): TVector_3D;
const
  iSigns: array[0..1] of Integer = (1, -1);
begin
  Result.X := cos((minRange + Random((maxRange) + 1)) * iSigns[Random(2)])*minRange;
  Result.Y := sin((minRange + Random((maxRange) + 1)) * iSigns[Random(2)])*minRange;
  Result.Z := cos((minRange + Random((maxRange) + 1)) * iSigns[Random(2)])*minRange;
end;

PS zum PS.:
Zitat:
PS: Bei deinen Downloads meckert mein Kaspersky: Das angeforderte Objekt ist mit folgenden Viren INFIZIERT: Multi.Packed
Das kann durchaus vorkommen das ein Antivierenprogramm die Exe bemeckert. Sie ist in der Tat gepackt aber VIERENFREI !
Selbst wenn die Datei mit UPX gepackt wird meckert mein AntiVir mit akt. Updates.

Leider bekomme ich auf programiertechnische Weise die App noch nicht kleiner als 120 KB.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 03:10 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