AGB  ·  Datenschutz  ·  Impressum  







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

Pascalsches Dreieck darstellen

Ein Thema von el_presidente · begonnen am 7. Mär 2007 · letzter Beitrag vom 8. Mär 2007
Antwort Antwort
el_presidente

Registriert seit: 7. Mär 2007
2 Beiträge
 
#1

Pascalsches Dreieck darstellen

  Alt 7. Mär 2007, 21:05
Guten Abend zusammen =)
Ich bin mir nicht sicher ob dashier das richtige Forum ist wenn nicht tut es mir leid

Also ich habe folgendes Problem: Aufgabe ist es ein bei Mausklick ein Pascalsches Dreieck Graphisch darstellen zu lassen (also nicht die Zahlen, sondern so (soll nich ganz genau so aussehen nur damit ihr wisst wie ich es ungefähr meine ). Dabei soll immer geprüft werden ob die beiden Pixel die über dem zu prüfenden sind gleich sind. Wenn ja dann soll der geprüfte Pixel grün gefärbt werden, wenn nein dann rot. Der erste und letzte Pixel in jeder Zeile soll immer rot gezeichnet werden. Naja das klappt soweit auch ganz gut. Nur habe ich das Problem das wenn die X-Koordinate der Maus größer als die Y-Koordinate ist nichts gezeichnet wird (was auch logisch ist wenn man sich die Schleife anguckt) und ich nicht genau weiß wie ich das umgehen soll. Das zweite Problem ist, dass er das zwar alles richtig zeichnet, aber irgendwie zeichnet er den ganzen Kram zwei mal und füllt zwischen beiden Exemplaren alles grün aus. Etwas schwer zu erklären, aber ich habe HIER mal das Projekt hochgeladen, dann könnt ihr euch das vllt mal bitte angucken.

Hier mal der Delphicode für mein Vorhaben:
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
   Zeile,Zahl: Integer;
begin
  for Zeile:=Y to Y+100 do
   begin
    for Zahl:=X to Zeile do
    begin
     if Zahl=X then Canvas.Pixels[Zahl,Zeile]:=clred
     else if Zahl=Zeile then Canvas.Pixels[Zahl,Zeile]:=clred
     else if Canvas.Pixels[Zahl-1,Zeile-1]=Canvas.Pixels[Zahl,Zeile-1] then
      Canvas.Pixels[Zahl,Zeile]:=clgreen
     else if Canvas.Pixels[Zahl-1,Zeile-1]<>Canvas.Pixels[Zahl,Zeile-1] then
      Canvas.Pixels[Zahl,Zeile]:=clred;
    end;
   end;
end;
Schon mal vielen Dank =))
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#2

Re: Pascalsches Dreieck darstellen

  Alt 8. Mär 2007, 01:39
Zitat von el_presidente:
Guten Abend zusammen =)
Ich bin mir nicht sicher ob dashier das richtige Forum ist wenn nicht tut es mir leid ;-)

Also ich habe folgendes Problem: Aufgabe ist es ein bei Mausklick ein Pascalsches Dreieck Graphisch darstellen zu lassen (also nicht die Zahlen, sondern so (soll nich ganz genau so aussehen nur damit ihr wisst wie ich es ungefähr meine ;) ). Dabei soll immer geprüft werden ob die beiden Pixel die über dem zu prüfenden sind gleich sind. Wenn ja dann soll der geprüfte Pixel grün gefärbt werden, wenn nein dann rot. Der erste und letzte Pixel in jeder Zeile soll immer rot gezeichnet werden. Naja das klappt soweit auch ganz gut. Nur habe ich das Problem das wenn die X-Koordinate der Maus größer als die Y-Koordinate ist nichts gezeichnet wird (was auch logisch ist wenn man sich die Schleife anguckt) und ich nicht genau weiß wie ich das umgehen soll. Das zweite Problem ist, dass er das zwar alles richtig zeichnet, aber irgendwie zeichnet er den ganzen Kram zwei mal und füllt zwischen beiden Exemplaren alles grün aus. Etwas schwer zu erklären, aber ich habe HIER mal das Projekt hochgeladen, dann könnt ihr euch das vllt mal bitte angucken.

Hier mal der Delphicode für mein Vorhaben:
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
   Zeile,Zahl: Integer;
begin
  for Zeile:=Y to Y+100 do
   begin
    for Zahl:=X to Zeile do
    begin
     if Zahl=X then Canvas.Pixels[Zahl,Zeile]:=clred
     else if Zahl=Zeile then Canvas.Pixels[Zahl,Zeile]:=clred
     else if Canvas.Pixels[Zahl-1,Zeile-1]=Canvas.Pixels[Zahl,Zeile-1] then
      Canvas.Pixels[Zahl,Zeile]:=clgreen
     else if Canvas.Pixels[Zahl-1,Zeile-1]<>Canvas.Pixels[Zahl,Zeile-1] then
      Canvas.Pixels[Zahl,Zeile]:=clred;
    end;
   end;
end;
Schon mal vielen Dank =))
Hallo,

du redest von einem Pascalschen Dreieck (das enthält die Binomialkoeffizienten) und verlinkst zu einer Sierpinski-Pyramide, das ist eine fraktale Struktur - was willst bzw. sollst du eigentlich? Ausser dass beides dreieckig ist, sehe ich keinen Zusammenhang.

Gruss Reinhard
  Mit Zitat antworten Zitat
el_presidente

Registriert seit: 7. Mär 2007
2 Beiträge
 
#3

Re: Pascalsches Dreieck darstellen

  Alt 8. Mär 2007, 13:53
tag auch
ja ich weiß das das beides verschiedene Dreiecke sind. darstellen möchte ich ein Pascalsches Dreieck. Den Link habe ich nur gewählt um zu zeigen das ich nicht die Zahlen darstellen will sondern die einzelnen Pixel und hab bei google kein Pascalsches Dreieck in so einer Form gefunden. Naja ich möchte auf jeden fall ein Pascalsches Dreieck

Machts gut
el_presidente


Edit:
Gesagt getan hier das Bild

http://www.asamnet.de/~mrgym/Mathema.../Pascal_T5.jpg
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Pascalsches Dreieck darstellen

  Alt 8. Mär 2007, 14:07
Könntest du das Bild bitte an den Beitrag anhängen (als Anlage) damit der Beitrag auch noch vollständig ist wenn das Bild von deinem Webspace verschwunden ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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