php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 25-05-2014, 18:01
Koda
 Registrierter Benutzer
Links : Onlinestatus : Koda ist offline
Registriert seit: Aug 2010
Beiträge: 105
Koda befindet sich auf einem aufstrebenden Ast
Standard PHP Bild Koordinaten Berechnen für Kreise

Guten Abend

Heute habe ich für mich zumindest bisher eine unlösbare Aufgabe. Vielleicht kann mir da jemand weiterhelfen.

Ich habe ein Bild was z.B. eine Landkarte sein kann oder ein beliebiges Bild. Genau in der Mitte fangen Kreise an. Am einfachsten ist dies glaube ich mit einer Dartscheibe zu vergleichen ähnlich diesem Bild (https://www.shoot-club.de/images/pro...lzen--Du-1.jpg) Ich glaube dies trifft es am besten. Ich habe auf diesem Bild mehrere Koordinaten bestimmt. Wenn wir bei unserem Beispiel bleiben wären dies z.B. Pfeillöcher.

Nun würde ich gerne die Punkte bestimmen. Sagen wir ich habe 10 Kreise. Der innerste Kreis ist 4 cm gross, und alle anderen Kreise haben einen Abstand von 2 cm.

Da der Prozess etwas zu schwer zu erklären ist bleibe ich beim Beispiel von der Dartscheibe. Für mich stellen sich nun Fragen die ich bisher mit google noch nicht lösen konnte und hoffe ihr könnt mir da helfen:

- Das Bild erstelle ich selber. Das heisst ich habe die pixelgrösse. Wie kann ich aber nun die Kreisdaten in eine Datenbank mit einem Wert speichern? Also nicht das Speichern ist das Problem, sondern die Werte zu finden.
- Dies benötige ich schlussendlich um den Kreis zu bestimmen. Ich möchte schlussendlich sagen können KoorinateA ist im Kreis 3, KoordinateB im Kreis 6 usw.
- Wäre dies auch mglich wenn es keine Kreise sondern Ovale sind?

Vielen Dank schon im Voraus für jede Hilfe.

Gruss

Koda
Mit Zitat antworten
  #2 (permalink)  
Alt 25-05-2014, 18:16
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Mathematikgrundlagen: Trigonometrie

Wo genau liegt das Problem?
Mit Zitat antworten
  #3 (permalink)  
Alt 25-05-2014, 18:28
Koda
 Registrierter Benutzer
Links : Onlinestatus : Koda ist offline
Registriert seit: Aug 2010
Beiträge: 105
Koda befindet sich auf einem aufstrebenden Ast
Standard

Hi

Vielen Dank für deine schnelle Antwort. Meine Probleme fangen hier leider schon von Grund auf an.

Mein Bild ist 500 x 500px. Das heisst die Koordinate für den Mittelpunkt liegt bei x und y 250.
Wenn ich die Dartscheibe physisch anschaue hat der innerste Kreis 4 cm. Alle weiteren Kreise haben einen Abstand von 2 cm. 10 Kreise sind vorhanden.

Fangen wir ganz am anfang an. Mein erstes Problem liegt darin, wie finde ich heraus in welchem Kreisabschnitt z.B. die Mittelkoordinate x=76, y=81 (plus 0.5cm) ist. das Loch ist 0.5cm gross. Dann wäre es wichtig, wenn der Kreis angerissen ist oder z.B. 0.4mm vom Kreis weg ist soll der nächste Kreis genommen.

Ich frage mich ist dies überhaupt mit PHP Möglich zu berechnen?

Gruss

Koda
Mit Zitat antworten
  #4 (permalink)  
Alt 25-05-2014, 18:44
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Koda Beitrag anzeigen
Vielen Dank für deine schnelle Antwort. Meine Probleme fangen hier leider schon von Grund auf an.

Mein Bild ist 500 x 500px. Das heisst die Koordinate für den Mittelpunkt liegt bei x und y 250.
Wenn ich die Dartscheibe physisch anschaue hat der innerste Kreis 4 cm. Alle weiteren Kreise haben einen Abstand von 2 cm. 10 Kreise sind vorhanden.
Bleib bitte bei einer Einheit. Entweder Pixel oder Zentimeter.

Zitat:
Zitat von Koda Beitrag anzeigen
Fangen wir ganz am anfang an. Mein erstes Problem liegt darin, wie finde ich heraus in welchem Kreisabschnitt z.B. die Mittelkoordinate x=76, y=81 (plus 0.5cm) ist. das Loch ist 0.5cm gross. Dann wäre es wichtig, wenn der Kreis angerissen ist oder z.B. 0.4mm vom Kreis weg ist soll der nächste Kreis genommen.
Code:
if (radius > (50mm - 0.4mm)) {
    // nächter Kreis
} else {
    // im Loch
}
Zitat:
Zitat von Koda Beitrag anzeigen
Ich frage mich ist dies überhaupt mit PHP Möglich zu berechnen?
Ja, PHP beherrscht die Grundrechnungsarten und stellt Winkelfunktionen zur Verfügung.
Mit Zitat antworten
  #5 (permalink)  
Alt 25-05-2014, 18:58
Koda
 Registrierter Benutzer
Links : Onlinestatus : Koda ist offline
Registriert seit: Aug 2010
Beiträge: 105
Koda befindet sich auf einem aufstrebenden Ast
Standard

Hi

Vielen Dank. Bei einer Einheit zu bleiben ist für mich noch sehr schwer da das Bild die Pixelgrösse hat genau wie die Koordinaten in px sind. Die Dartscheibe habe ich ja vor mit in cm.
Wie gesagt fehlt es mir schon von Anfang an am Wissen wie ich am einfachsten die einzelnen Kreise berechne für die DB um zu sagen welcher Kreis welchen Wert hat und geht weiter mit dem prüfen welcher Wert dann mein "loch" hat. Da hilft mir der Schnippsel leider nicht viel. Aber Danke.

Werde mich noch bei google weiter schlau machen ob ich mehr finde da mir nicht unbedingt die Kreisberechnung das Problem ist sondern der ganze ablauf. Ggf finde ich noch ein schnippsel dazu. Melde mich wenn ich was finde.

Gruss Koda
Mit Zitat antworten
  #6 (permalink)  
Alt 25-05-2014, 19:15
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Koda Beitrag anzeigen
Vielen Dank. Bei einer Einheit zu bleiben ist für mich noch sehr schwer da das Bild die Pixelgrösse hat genau wie die Koordinaten in px sind. Die Dartscheibe habe ich ja vor mit in cm.
Auch die Dartscheibe hat auf dem Bild eine Größe in Pixel

Zitat:
Zitat von Koda Beitrag anzeigen
Wie gesagt fehlt es mir schon von Anfang an am Wissen wie ich am einfachsten die einzelnen Kreise berechne für die DB um zu sagen welcher Kreis welchen Wert hat und geht weiter mit dem prüfen welcher Wert dann mein "loch" hat. Da hilft mir der Schnippsel leider nicht viel. Aber Danke.
Ich versteh immer noch nicht, wo das Problem liegt. Und was hat eine Datenbank damit zu tun? Wo die Daten herkommen, ist ja für die Berechnung irrelevant.

Zitat:
Zitat von Koda Beitrag anzeigen
Werde mich noch bei google weiter schlau machen ob ich mehr finde da mir nicht unbedingt die Kreisberechnung das Problem ist sondern der ganze ablauf. Ggf finde ich noch ein schnippsel dazu. Melde mich wenn ich was finde.
Wenn für dich der Grundlegende Ablauf einer Programmierung ein Problem darstellt, hast du aber ein falsches Hauptthema gewählt. Denn die Berechnung von Koordinaten in Kreisen hat grundsätzlich mal nix mit PHP und Datenbanken zu tun. Diese Aufgabe liegt schon eine Ebene höher.

Geändert von h3ll (25-05-2014 um 19:17 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 25-05-2014, 19:24
Koda
 Registrierter Benutzer
Links : Onlinestatus : Koda ist offline
Registriert seit: Aug 2010
Beiträge: 105
Koda befindet sich auf einem aufstrebenden Ast
Standard

Hi

Das Proble leigt eindeutig auf der Mathematischen Seite wobei es mir hier schon schleierhaft ist wie dies mit PHP zu erledigen ist Mit solcher Mathematik habe ich nichts am Hut. Dies ist eine Ausnahme das ich dies benötige.

Datenbank: Ich dachte, wenn ich es schaffe zu berechnen welchen Radius die einzelnen Kreise haben kann ich dies so in die Datenbank schreiben. Also in Form von:
Mittelpunkt = 150
In der DB:
Kreis1 = Radius 20px mit Wert 20
Kreis2 = Radius 30px(20 plus 10) Wert 18
Kreis3 = Radius 40px (20 plus 2*10) Wert 16
usw
Dies wäre ja noch machbar in dem ich einfach den Mittelpunkt wähle plus die cm des Radius in px umgerechnet.

Nun habe ich kein Problem damit zu wissen das ich meine x und y Koordinate mit 2px Radius habe. So wollte ich mit der Datenbank arbeiten um dann die Abfrage zu gesalten. Ich wollte ja noch den nächst höheren Wert falls er genau an der Kreislinie ist oder mit einer entfernung von maximal 2 px dran ist. Da könnte ich ja dann einfach statt 2 px radius 4 draus machen. Wäre ja nicht das Problem.

Und genau hier fehlt es an dem Mathematischen wissen gepart mit der Programmierung wie finde ich nun heraus welcher Wert mein Punkt hat.

Gruss

Koda

Geändert von Koda (25-05-2014 um 19:27 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 25-05-2014, 19:32
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Koda Beitrag anzeigen
Das Proble leigt eindeutig auf der Mathematischen Seite wobei es mir hier schon schleierhaft ist wie dies mit PHP zu erledigen ist Mit solcher Mathematik habe ich nichts am Hut. Dies ist eine Ausnahme das ich dies benötige.
Hätte man damals in der Schule nur besser aufgepasst

Zitat:
Zitat von Koda Beitrag anzeigen
Datenbank: Ich dachte, wenn ich es schaffe zu berechnen welchen Radius die einzelnen Kreise haben kann ich dies so in die Datenbank schreiben. Also in Form von:
Mittelpunkt = 150
In der DB:
Kreis1 = Radius 20px mit Wert 20
Kreis2 = Radius 30px(20 plus 10) Wert 18
Kreis3 = Radius 40px (20 plus 2*10) Wert 16
usw
Dies wäre ja noch machbar in dem ich einfach den Mittelpunkt wähle plus die cm des Radius in px umgerechnet.
Ja. Das macht Sinn, wenn du mehrere Dartscheiben hast. Bei einer einzigen Dartscheibe wäre dafür eine Datenbank ein wenig Overkill.

Zitat:
Zitat von Koda Beitrag anzeigen
Nun habe ich kein Problem damit zu wissen das ich meine x und y Koordinate mit 2px Radius habe. So wollte ich mit der Datenbank arbeiten um dann die Abfrage zu gesalten. Ich wollte ja noch den nächst höheren Wert falls er genau an der Kreislinie ist oder mit einer entfernung von maximal 2 px dran ist. Da könnte ich ja dann einfach statt 2 px radius 4 draus machen. Wäre ja nicht das Problem.
Wozu sollte man so eine Abfrage in der Datenbank brauchen? Wo liegt der Sinn in der Praxis?

Zitat:
Zitat von Koda Beitrag anzeigen
Und genau hier fehlt es an dem Mathematischen wissen gepart mit der Programmierung wie finde ich nun heraus welcher Wert mein Punkt hat.
Du solltest nicht versuchen zwei Probleme gleichzeitig zu lösen. Die Schwierigkeiten vervielfachen sich sonst. Versuch das Problem erst mal auf dem Papier zu lösen.

Wie gesagt, das Problem ist mit Trigonometrie lösbar. Zu dem Thema gibt es haufenweise Bücher und Internetseiten.

Tipp: Satz des Pythagoras ? Wikipedia
Mit Zitat antworten
  #9 (permalink)  
Alt 25-05-2014, 21:06
Koda
 Registrierter Benutzer
Links : Onlinestatus : Koda ist offline
Registriert seit: Aug 2010
Beiträge: 105
Koda befindet sich auf einem aufstrebenden Ast
Standard

Guten Abend

Vielen Dank. Das war genau der richtige Ansatz. So kann ich die differenz vom Mittelpunkt bis zu meinem gesetzten Punkt berechnen und weiss nun welche Wertung es hat. Danke.

ABER Hast du auch eine Idee ob dies mit Ovalen "Kreisen" geht? Die Ovale sind immer gleich ist. Also seitlich haben die Ringe immer 40px abstand und in der höhe immer sagen wir 55px (Hab leider nicht grad die richtigen Daten zur Hand. Sowas wie hier: http://www.birchwoodcasey-deutschlan...-mit-farbe.jpg aber mit mehr Ringen.). Hast du da ggf auch eine Idee?

Gruss und Danke

Koda
Mit Zitat antworten
  #10 (permalink)  
Alt 25-05-2014, 21:23
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das sind weder Kreise, noch Ovale. Das Einfachste wäre wohl, wenn man sich das als Kreis vorstellt, der in zwei Hälfte geteilt und ein gerades Zwischenstück eingesetzt wurde.
Mit Zitat antworten
  #11 (permalink)  
Alt 25-05-2014, 21:48
Koda
 Registrierter Benutzer
Links : Onlinestatus : Koda ist offline
Registriert seit: Aug 2010
Beiträge: 105
Koda befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Das sind weder Kreise, noch Ovale. Das Einfachste wäre wohl, wenn man sich das als Kreis vorstellt, der in zwei Hälfte geteilt und ein gerades Zwischenstück eingesetzt wurde.
Hi

Vielen dank. Da ich grad auf anhieb solche Ovale gefunden habe wie ich verwende dachte ich schon das sei ein Standard aber da finde ich sicher was

Gruss

Koda

Geändert von Koda (25-05-2014 um 22:22 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Richtiger Feldtyp für GPS-Koordinaten Truncate SQL / Datenbanken 1 06-02-2009 07:26
PHP: Datum für wiederholende Termine im Kalendar berechnen Flow09 BRAINSTORMING PHP/SQL/HTML/JS/CSS 11 16-05-2007 15:46
Perfekter Spaltentyp für GPS-Koordinaten? Truncate SQL / Datenbanken 1 08-04-2007 18:18
3D Würfel - Koordinaten berechnen Zine Off-Topic Diskussionen 5 11-08-2006 21:23
Koordinaten in Bild einzeichnen Simon6785 PHP Developer Forum 1 08-11-2004 19:30

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:14 Uhr.