AGB  ·  Datenschutz  ·  Impressum  







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

Stern zeichnen mit line to und move to

Offene Frage von "hedi112"
Ein Thema von hedi112 · begonnen am 25. Okt 2009 · letzter Beitrag vom 25. Okt 2009
 
Benutzerbild von olee
olee

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Stern zeichnen mit line to und move to

  Alt 25. Okt 2009, 15:38
@hathor: Es ist nicht Sinnvoll, einfach eine Lösung in den Raum reinzuwerfen wenn es darum geht, dass er es auch verstehen muss.

Naja wie dem auch sei.

Du hast da wohl einen kleinen Fehler in deiner Schleife

Bisher hast du ja das hier
Delphi-Quellcode:
var
  index,x,xi,yi: integer;
begin
  image1.Canvas.moveto(xm,ym);
  x:=Anzahl_Punkte mod 2;
  for index:=1 to Anzahl_Punkte do
    if x=0 then
    begin
      xi:=trunc (ri*cos(index*winkelstueck));
      yi:=trunc (ri*sin(index*winkelstueck));
      image1.Canvas.LineTo(xi,yi)
    end
    else
    begin
      xi:=trunc (ra*cos(winkelstueck));
      yi:=trunc (ra*sin(winkelstueck));
      image1.Canvas.lineto(xi,yi);
    end;
end;
Nur bleibt für jeden Zacken X = const. D.h. Du hast immer nur gleich lange "Spitzen"

Vllt. solltest du es mit so etwas versuchen

Delphi-Quellcode:
var
  i,xi,yi: integer;
begin
  xi := trunc (ra*cos(0));
  yi := trunc (ra*sin(0));
  image1.Canvas.moveto(xi,yi);

  winkelstueck := 1/Anzahl_Spitzen * ???;

  for i := 0 to Anzahl_Spitzen-1 do
  begin
    // Spitze zeichnen
    xi := trunc (ra*cos(i*winkelstueck)); //Noch falsch
    yi := trunc (ra*sin(i*winkelstueck)); //Noch falsch
    image1.Canvas.LineTo(xi,yi);

    // Gegenstück zur Spitze zeichnen (das ding da was näher am Mittelpunkt liegt xD)
    xi := trunc (ri*cos((i+0.5)*winkelstueck)); //Noch falsch
    yi := trunc (ri*sin((i+0.5)*winkelstueck)); //Noch falsch
    image1.Canvas.lineto(xi,yi);
  end;
end;
Beachte das die Berechnung noch nicht korrigiert ist das musst du noch machen (Mittelpunk mit einbeziehen).

EDIT: Im zweiten code bei der Nicht-Spitze wurde auch noch mit Index multipliziert, was bei dir im unteren Teil deines Codes noch gefehlt hat.

MFG
Björn Zeutzheim
Codename: Performancepumpe
  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 01:40 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 by Thomas Breitkreuz