AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Automatische Erkennung ob Pixel in Kreis funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Automatische Erkennung ob Pixel in Kreis funktioniert nicht

Ein Thema von MisterKnister · begonnen am 21. Feb 2012 · letzter Beitrag vom 21. Feb 2012
Antwort Antwort
MisterKnister

Registriert seit: 21. Feb 2012
7 Beiträge
 
#1

Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 16:43
Hallo,
ich möchte dass mein Programm automatisch erkennt ob ein Pixel im Kreis liegt oder nicht und diesen gegebenenfalls einfärbt.
(soll nicht per fill geschehen).
Leider funktioniert nur die manuelle Eingabe, aber nicht die komplette suche über das ganze Bild.

Wäre nett, wenn mir jemand helfen oder einen Tipp geben könnte damit ich es hinbekomme.

Code:
procedure TForm1.Button4Click(Sender: TObject);
var
i, j : Integer;
A : TPoint;

begin
try
A.X := i; //StrToInt (Edit3.Text) ; // i;
A.Y := j; //StrToInt (Edit4.Text) ; // j;

for i := 0 to Breit-1 do
 for j := 0 to Hoch-1 do
 begin
 if sqrt(sqr(A.X - M.X) + sqr(A.Y - M.Y)) <= Radius1
 then
 Image1.Picture.Bitmap.Canvas.Pixels[A.X,A.Y] := clBlack ;
end;
 except
ShowMessage ('Fuck my Life!');

end;
end;
  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
 
#2

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 16:50
Überleg mal wann (wie oft) hier A.X und A.Y zugewiesen werden ....
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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 17:18
Überleg mal wann (wie oft) hier A.X und A.Y zugewiesen werden ....
Praktisch gesehn garnicht, da i und j an dieser Stelle uninitialisiert sind.
$2B or not $2B
  Mit Zitat antworten Zitat
MisterKnister

Registriert seit: 21. Feb 2012
7 Beiträge
 
#4

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 17:36
Überleg mal wann (wie oft) hier A.X und A.Y zugewiesen werden ....
Ohje, und daran mache ich echt schon tagelang rum.
Vielen Dank!

Ist jetzt zwar erstmal nur mit i und j als Variablen gelöst, aber mal schaun ob das für den weiteren Verlauf erstmal reicht.

Nochmal Danke!
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 17:37
MisterKnister, denke daran, dass := keine mathematische Gleichsetzung, sondern eine Zuweisung ist! Delphi führt deine Anweisungen Schritt für Schritt von oben nach unten aus. Jetzt guck dir mal an, wo du A.X bzw. A.Y zuweist, und wo die Schleife beginnt.

Edit: Ok, war etwas zu langsam...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 18:21
Ohje, und daran mache ich echt schon tagelang rum.
PS: Delphi und vermutlich auch Lazarus sind ganz nett.

In Delphi gibt der Compiler z.B. eine Warnung aus, ala "Variable sei nicht initialisiert".
Wenn man sich das mal durchlesen und auf den Compiler hören würde, dann wäre das Leben viel leichter.
$2B or not $2B
  Mit Zitat antworten Zitat
MisterKnister

Registriert seit: 21. Feb 2012
7 Beiträge
 
#7

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 18:26
Ohje, und daran mache ich echt schon tagelang rum.
PS: Delphi und vermutlich auch Lazarus sind ganz nett.

In Delphi gibt der Compiler z.B. eine Warnung aus, ala "Variable sei nicht initialisiert".
Wenn man sich das mal durchlesen und auf den Compiler hören würde, dann wäre das Leben viel leichter.
(*
Sorry, aber ich bin sozusagen auch noch Delphi Neuling, und deshalb sagen mir diese Hilfen (die ich natürlich lese) allerdings nicht immer etwas was mir zur Lösung hilft, und in diesem Falle stand da auch nichts davon


Aber falls solche Fragen nicht in dieses Forum gehören ist es auch okay und ich werde mir gegebenenfalls ein Noobie Forum suchen.
Soll nicht böse klingen, aber so habe ich deinen Beitrag leider interpretiert.*)

Hilfe somit angekommen =)
Danke!

Geändert von MisterKnister (21. Feb 2012 um 18:47 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 18:30
Aber falls solche Fragen nicht in dieses Forum gehören ist es auch okay und ich werde mir gegebenenfalls ein Noobie Forum suchen.
Soll nicht böse klingen, aber so habe ich deinen Beitrag leider interpretiert.
Newbie-Fragen sind schon okay. himitsu wollt dir glaub ich nur einen Tipp geben, wie du solche Fehler selbst leichter finden kannst.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: Automatische Erkennung ob Pixel in Kreis funktioniert nicht

  Alt 21. Feb 2012, 19:15
himitsu wollt dir glaub ich nur einen Tipp geben, wie du solche Fehler selbst leichter finden kannst.
Jupp.

Delphi meint üblicher Weise Folgendes zu deinem Code, aus Beitrag #1.
Zitat:
[DCC Warnung] Unit7.pas(34): W1036 Variable 'j' ist möglicherweise nicht initialisiert worden
[DCC Warnung] Unit7.pas(33): W1036 Variable 'i' ist möglicherweise nicht initialisiert worden
Und zwar hier.
Delphi-Quellcode:
A.X := i; //StrToInt (Edit3.Text) ; // i;
A.Y := j; //StrToInt (Edit4.Text) ; // j;
Da wird i und j verwendet, obwohl ihnen vorher kein Wert zugewiesen wurde.

Nja, zum Glück bist du nicht auf die Idee gekommen, i und j als globale Variablen zu deklarieren, sondern richtiger Weise lokal.
Sonst würde diese Meldung nicht kommen. (ein Grund mehr, warum globale Variablen böse sind)
$2B or not $2B
  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 22:40 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