AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Pixel zeilenweise durchnummerieren ohne scanline
Thema durchsuchen
Ansicht
Themen-Optionen

Pixel zeilenweise durchnummerieren ohne scanline

Ein Thema von mabstudent · begonnen am 24. Jan 2013 · letzter Beitrag vom 26. Jan 2013
Antwort Antwort
Seite 1 von 2  1 2      
mabstudent

Registriert seit: 13. Nov 2010
23 Beiträge
 
#1

Pixel zeilenweise durchnummerieren ohne scanline

  Alt 24. Jan 2013, 10:35
Delphi-Version: 5
Ich habe ein 100*100 Image, dessen 10.000 Pixel nach folgendem Schema durchnummeriert werden sollen:

(x,y):pixelnummer

(1,1):1
(2,1):2
(3,1):3
...
(100,1):100 //Ende der ersten Zeile
(1,2):101
(2,2):102
(3,2):103
...
//letzte Zeile:
(1,100):9901
...
(99,100):9999
(100,100):10000

Ich kenne, bzw. darf nur mit image1.canvas.pixels[x,y] die Aufgabe lösen und habe keine Ahnung wie. In der Suche habe ich viele Lösungen mithile Scanlines(..) gesehen, das darf ich leider nicht verwenden.
Bin für jeden Tipp dankbar!
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 24. Jan 2013, 10:47
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  x, y, k: Integer;
begin
  with Image1.Picture.Bitmap do
  begin
    Width := 100 - 1;
    Height := 100 - 1;
    k := 0;

    for y := 0 to Width do
      for x := 0 to Width do
      begin
        Inc(k);
        Canvas.Pixels[x, y] := k;
      end;

    ShowMessage(IntToStr(k));
  end;
end;
Und besser in der Schule aufpassen.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 24. Jan 2013, 10:49
Du hast sie doch schon soeben durchnummeriert, sogar ganz ohne Delphi!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 24. Jan 2013, 11:48
oder geht es um die hin und her Rechnerei?

Delphi-Quellcode:
procedure TForm1.SetPoint(index:Integer);
begin
   Image1.Canvas.Pixels[index div 100,index mod 100] := clBlack;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 i:Integer;
begin
  for I := 0 to 99 do SetPoint(100 * i + i);
  for I := 0 to 99 do SetPoint(100 * i + 99 - i);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
terence14
(Gast)

n/a Beiträge
 
#5

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 24. Jan 2013, 12:15
Dein Bild hat eine Breite von 100. xMax=100;
Und eine Höhe von 100. yMax=100;

Delphi-Quellcode:

xMin:=1; xMax:=100;
yMin:=1; yMax:=100;
EinerStelle:=x mod 10;
ZehnerStelle:=x div 10;
if (y > yMin) then
   ZehnerStelle:=ZehnerStelle + (y - yMin) * xMax;
Nummer:=(ZehnerStelle * 10) + EinerStelle;
Der Wert in Nummer ergibt die durchnummerierte Zahl.

MfG,
terence
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 24. Jan 2013, 15:19


Also ich lese die Frage nun schon mehrere Male durch und verstehe nach wie vor das Problem nicht. "Pixel numerieren". Soll da über einen eindimensionalen Index auf die zweidimensionale Pixelmatrix zugegriffen werden? Quasi 100 Zeilen horizontal aneinander gehängt?
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 24. Jan 2013, 22:37
@Codehunter

Ich denke die Aufgabe ist so einfach wie sie sich liest und sollte erst gar nicht interpretiert werden. Es ist wahrscheinlich eine Schulaufgabe. Also erst gar nicht anfangen da einen Hacken zu suchen mit der Begründung, dass es ja nicht so einfach sein kann.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 25. Jan 2013, 07:23
Könnte damit zu tun haben, dass wir in der Schule keinen nennenswerten IT-Unterricht hatten und mir daher allzu einfache Aufgaben per se suspekt erscheinen

Mein erstes Hello-World-Programm schrieb ich erst in der Ausbildung und zwar in Assembler auf einem 8088-Prozessor. Vorher hatte ich schon die Lagerverwaltung aus dem AmigaBASIC-Handbuch um eine grafische Oberfläche erweitert...

Geändert von Codehunter (25. Jan 2013 um 07:25 Uhr)
  Mit Zitat antworten Zitat
mabstudent

Registriert seit: 13. Nov 2010
23 Beiträge
 
#9

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 25. Jan 2013, 13:00
Habe da auch viel zu kompliziert gedacht, also es war schlichtweg das gemeint:

Code:
[..]

      for y := 1 to 100 do
        for x := 1 to 100 do
        begin
          Inc(k);
        end;
Ich brauchte die Nummerieung, um jedes "Primzahlpixel" des 100*100 Image rot zu machen, alle anderen gelb.
Es mussten also die Primzahlen von 1..10.000 gesucht werden.
Hab nicht gecheckt das das einfach inc(k) entspricht, weil ich nicht wusste wie die Schleife in der Schleife arbeitet.
Wird erst Schleife 1 komplett durchlaufen dann Schleife 2, oder einmal Schleife 1, einmal Schleife 2?
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Pixel zeilenweise durchnummerieren ohne scanline

  Alt 25. Jan 2013, 13:07
Die äussere Schleife fängt bei Wert y= 1,
Dann wird die innere Schleife gestartet und diese läuft von x=1 bis X=100.
Ist die innere Schleife beendet wird die äussere Schleife um eins hochgezählt
und dann wird die innerer Schleife wieder bearbeitet.

Grüße
Klaus
Klaus
  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 15:55 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