AGB  ·  Datenschutz  ·  Impressum  







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

N-Eck mit Canvas zeichnen

Ein Thema von moritz · begonnen am 23. Sep 2004 · letzter Beitrag vom 23. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#1

N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 16:32
Hi!

Ich hab ein Mathematisches Problem: Und zwar will ich die Figur, die ihr in der Skizze im Anhang seht, mit Canvas zeichnen. r und n (Die Anzahl der Ecken; n € N ) sollen angegeben werden können. Könnt ihr mir helfen?

Gruß

Edit: h ist unwichtig, einfach ignorieren. n und r sind nicht konstant
Miniaturansicht angehängter Grafiken
skizze_131.jpg  
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 16:37
Hi Moritz,

die wahrscheinlich beste Möglichkeit ist mit Trig-Funktionen zu arbeiten.

Delphi-Quellcode:
function DegToRad(Deg: Real): Real;
begin
  Result := Deg*Pi/180;
end;

procedure ZeichneNEck(xm, ym, r: Real; n: Integer);
var
  i: Integer;
  xn, yn: Real;
begin
  Canvas.MoveTo(Round(xm+r),Round(ym));
  for i := 1 to n do begin
    xn := xm + Round(r*cos(DegToRad(i*360/n)));
    yn := ym - Round(r*sin(DegToRad(i*360/n)));
    Canvas.LineTo(Round(xn), Round(yn));
  end;
end;
ist ungetestet, der Ansatz sollte aber richtig sein

Greetz
alcaeus

[edit]Alle Fehler korrigiert, müsste funktionieren.[/edit]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 16:48
Hi,

sorry, da ist nur ein Strich und mit den Funktionen kenn ich mich leider nich aus

Gruß, moritz

P.S.: Ich hab dich mal per ICQ angesprochen.
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 16:54
Hi Moritz,

das hast du davon wenn du Warnungen ignorierst.
Zitat:
Variable yn may not have been initialized
Ist auch klar:
yn := yn - Round(r*sin(DegToRad(i*360/n))); Die Richtige Zeile lautet:
yn := ym - Round(r*sin(DegToRad(i*360/n))); Greetz
alcaeus

PS: mal sehn wie viele den Fehler gefunden hätten
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#5

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 16:59
Super, Danke!!
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#6

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 19:24
So, nächstes Problem: Ich finde ich in der Skizze h raus, wenn ich nur r und n kenne?
Ich hab leider keine Lösung gefunden

Gruß, Moritz
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 19:28
Hi Moritz,

eigentlich so:

h := r*cos(DegToRad(360/n)); oder analog:
h := r*cos(2*Pi/n); Wichtig ist, dass du den Winkel in Radianten übergibst!

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#8

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 19:31
Nur die Hälfte des Winkels, alcaeus!

cos(pi/n) = h/r
=> h = r * cos(pi/n).
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#9

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 19:33
Zitat von d3g:
Nur die Hälfte des Winkels, alcaeus!
ich sollte mal zurück in die Schule

@Moritz: also so: h := r*cos(DegToRad(180/n)); Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#10

Re: N-Eck mit Canvas zeichnen

  Alt 23. Sep 2004, 19:34
Leute, ihr seid genial! Danke
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:27 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