AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Matrix

Ein Thema von psygonis · begonnen am 30. Mai 2019 · letzter Beitrag vom 30. Mai 2019
Antwort Antwort
psygonis

Registriert seit: 30. Mai 2019
Ort: Niederfrohna
2 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Matrix

  Alt 30. Mai 2019, 14:24
Gleich vornweg, ich habe kaum Ahnung von Delphi. Komme von PHP. Aber ich will mich jetzt mal etwas mehr damit befassen. Zur Zeit habe ich meine Delphi Sachen immer von jemanden anders erledigen lassen. Da gab es paar Probleme. Belassen wir es dabei. Folgendes habe ich zu erledigen.
Ausgangssituation:

Ein Array mit mehreren Einträgen. Diese stellen Farb-Codes dar und deren Vorkommen in einem Bild.

Array1 -> Vorgaben der Farbcodes
Array1 = (B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 B27 B28 B29 B30 B31

Array2 und folgende sind die Daten aus den Bildern

Array2 (0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0)

Array3 (0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0)

Array4 (0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0)

Array5 (0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0)


Eine 0 an dem betreffendem Index bedeutet, die Farbe ist in dem Bild nicht enthalten, eine 1 bedeutet, ist enthalten.
Es kann bis zu 1000 Bilder geben, die so definiert sind und jedes Bild kann bis zu 256 Farben (Indexe) enthalten.
Array2 ist meine Referenzmatrix.

Ich möchte jetzt schnell festsellen:
1. welche Bilder haben die gleichen Werte, egal ob Referenzmatrix oder nicht?
2. welche Bilder sind in der Referenz-Matrix enthalten?

In dem obigen Beispiel wären also Array3 und Array4 gleich und in der Referenz enthalten. Array4 wäre weder gleich mit irgend etwas noch in der Referenz enthalten.
Gibt es da Funktionen oder DLL, die das bereits so lösen können, oder hilft da nur for in for in for und so weiter?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#2

AW: Matrix

  Alt 30. Mai 2019, 14:45
Wenn ich das richtig sehe, ist Array1 für die Beantwortung deiner Anfragen 1 und 2 nicht relevant.

Was die Arrays und die Art der Abfragen betrifft, würde ich bei völliger Freiheit keine Arrays sondern Sets nehmen. Das geht aber nur deshalb, weil die Begrenzung auf 256 Elemente bei deiner Problematik eingehalten wird. Damit wird der Test auf Gleichheit und "in Referenz enthalten" zum Kinderspiel.

Delphi-Quellcode:
type
  TByteSet = set of 0..255;
var
  Ref: TByteSet;
  Set3: TByteSet;
  Set4: TByteSet;
  Set5: TByteSet;
begin
  Ref := [7,8,11,16,20,21,28];
  Set3 := [7,8,11,16,28];
  Set4 := [7,8,11,16,28];
  Set5 := [7,8,10,11,16,17,28];

  if Set3 = Set4 then; // ist Set3 gleich Set4?
  if Set3 <= Ref then; // ist Set3 in Ref enthalten
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Matrix

  Alt 30. Mai 2019, 14:48
Bitte gib deinen Thema ein aussagekräftigeren Titel. Der jetzige ist eher nichts sagend.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
psygonis

Registriert seit: 30. Mai 2019
Ort: Niederfrohna
2 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Matrix

  Alt 30. Mai 2019, 17:41
OK, werde ich tun. Das mit den Sets checke ich auch mal. Danke für die Hinweise.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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