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 12-10-2006, 16:31
fletschge
 Newbie
Links : Onlinestatus : fletschge ist offline
Registriert seit: Jul 2006
Beiträge: 24
fletschge ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Funktion] Radiant und Tangente im Rechteck

Hallo

Sorry erstmal für den beschissenen Titel, wusste echt keinen Besseren!

Also es geht um die mathematische Berechnung zweier Punkte:



Die beiden roten Punkte kenne ich (x,y Achse). Auch die Höhe und Breite des Rechtecks sowie die Mittelpunkte beider Kreise und deren Radius.
Nun, kann mir jemand einen Denkanstoss geben wie ich die beiden Grünen Kreise herausfinden kann( x,y)? Mittels Intersection prüfen, wo sie sich schneiden dauert leider zu lange und benötigt zu viele Resourcen, da ich diesen Algorithmus über 500 Mal Aufrufen möchte.


Ich habe schon daran gedacht, den äusseren Kreis bis zu den Schnittecken des Rechtecks zu strecken, doch es entstand kein vernünftiges Resultat.

Über jegliche Hilfe bin ich dankbar!

Gruss
fletschge
Mit Zitat antworten
  #2 (permalink)  
Alt 12-10-2006, 16:57
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: [Funktion] Radiant und Tangente im Rechteck

Tja, da würd'sch ma da anfangen:
http://de.wikipedia.org/wiki/Kategorie:Formelsammlung

Geometrie, analytische Geometrie
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-10-2006, 17:36
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du hast zwei punkte. Beide liegen im wertebereich einer linearen
funktion deren graph eine gerade ist die durch beide punkte verläuft.
Die gerade steht im einem punkt senkrecht (orthogonal) zum gesuchten
funktionsgraphen. Damit du die funktionsgleichung des gesuchten
graphen erhältst brauchst du die steigung, (einen punkt hast du
ja schon). Da die gerade zwischen den gegeben punkten orthogonal
zur gesuchten geraden verläuft kennst du die steigung der gesuchten
funktion. Es ist der negative kehrwert der gegeben funktion.
Nun hast du einen punkt und die steigung. Lineare funktionen
folgen der vorschrift y = mx + b. x,y und m hast du. Also bekommst
du auch b. Wenn du b hast, hast du also auch die funktionsgleichung.
Der eine grüne gesuchte punkt ist eine nullstelle der funktion. Der
andere der y-achsen-schnittpunkt.

greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Mit Zitat antworten
  #4 (permalink)  
Alt 12-10-2006, 22:34
fletschge
 Newbie
Links : Onlinestatus : fletschge ist offline
Registriert seit: Jul 2006
Beiträge: 24
fletschge ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Funktion]

Danke Closure!

Nur leider, wie du selber geschrieben hast, erhalte ich auch einen Schnittpunkt, den ich wieder abfragen muss und das dauert (leider) zu lange
Aber was meinst du mit

Zitat:
einen punkt hast du ja schon
? den Einen grünen auf der 0 achse?

In diesem Falle ist die Tangente vom 90°-Winkel zwischen den beiden roten Punkten definiert, aber woher berechnest du nun die Richtung (Grad) dieser Funktion? Du musst diesen ja "drehen".

Kann sein dass ich nichts begriffen habe

Wenn ichs mir recht überlege würde es eigentlich reichen wenn ich anstatt des Rechtecks nen dritten Kreis (imaginär) zeichnen würde, auf dem dann beide grünen punkte (weiter eingerückt als auf dem Bild) liegen. Also würde es sicher ne Möglichkeit geben das mit Radiant rauszukriegen, ich werde mich morgen weiter damit auseinandersetzen.


P.S.: Seit wann benutzt man in linearen Gleichungen b? ist das was anderes als c (constant) ?

Besten Dank
Mit Zitat antworten
  #5 (permalink)  
Alt 13-10-2006, 00:09
em-!x
 Member
Links : Onlinestatus : em-!x ist offline
Registriert seit: Sep 2003
Beiträge: 491
em-!x ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es ist die Frage, ob man mit php auch Gleichungssysteme lösen kann, denn das setzt der Weg von Closure voraus.

Falls soetwas bisher nicht in php implementiert wurde, gibt es hier Möglichkeiten, das numerisch zu machen;
http://de.wikipedia.org/wiki/Liste_n...ichungssysteme
__________________


Geändert von em-!x (13-10-2006 um 00:11 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 13-10-2006, 08:14
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: [Funktion]

Zitat:
Original geschrieben von fletschge

den Einen grünen auf der 0 achse?
Nein. Du hast doch geschrieben du kennst die koordinaten der beiden
roten punkte. Und die kennst die maße des rechtecks.
Die linke und die obere seite des selben bilden mit ihrem berührungspunkt einen
teil eines kartesischen koordinatensystems. Du hast genau den
4ten quadranten.

Aus zwei punkten kann man die geraden gleichung bestimmen.
Stichwort 2 punkte form. Das machst du genau mit der geraden die durch
die beiden gegebenen roten punkte läuft.

Da der eine rote punkt nicht nur element des wertebereichs der gegeben
funktion ist sondern auch der gesuchten, hast du automatisch also auch
einen punkt für die gesuchte funktion. Aus einem punkt kannst du aber
die geradengleichung nicht bestimmen. Dafür fehlt dir z.B. noch die steigung.
Dein glück ist nun dass die gegebene gerade orthogonal auf der gesuchten
steht. Das heisst du kannst aus der steigung der gegebenen geraden die
steigung der gesuchten ermitteln (negatives reziproke). Jetzt hast du einen
punkt und eine steigung und kannst die geradengleichung ermitteln.
Dann sieht man dass ein punkt eine nullstelle ist. Kann also einfach ermittelt
werden. Der ordinaten-schnittpunkt ist dann ebenso einfach zu finden.

Es geht natürlich auch mittels gleichsetzung, da ja der (linke) rote punkt
sowohl zur ergebnismenge der gesuchten also auch zur ergebnismenge
der gegebenen funktion gehört.


Zitat:
In diesem Falle ist die Tangente vom 90°-Winkel zwischen den beiden roten Punkten definiert, aber woher berechnest du nun die Richtung (Grad) dieser Funktion? Du musst diesen ja "drehen".
Ich hab angenommen das sei immer so ? War das nur ein beispiel ?
Dann muss man das doch anders lösen.


Zitat:
P.S.: Seit wann benutzt man in linearen Gleichungen b? ist das was anderes als c (constant) ?
Ist egal wie dus nennst. Wichtig ist nur dass die variable im selben kontext
nicht schon für etwas anderes benutzt wird.

greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

Geändert von closure (13-10-2006 um 08:52 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 13-10-2006, 08:55
fletschge
 Newbie
Links : Onlinestatus : fletschge ist offline
Registriert seit: Jul 2006
Beiträge: 24
fletschge ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: [Funktion]

@closure:

Aha jetzt versteh ich endlich! Das negative Reziproke (Kehrwert) ergibt die Geradenfunktion in einem 90° Winkel. Und da eine der Koordinaten der grünen Punkte immer 0 ist, lässt sich der andere einfach ermitteln, stimmt!

Zitat:
Ich hab angenommen das sei immer so ? War das nur ein beispiel ?
Dann muss man das doch anders lösen.
Nein ist schon richtig so, hab mich ein wenig unsauber artikuliert (mein "Fall" bezog sich auf die Grafik und nicht auf dein geschriebener Text).


Zitat:
Ist egal wie dus nennst. Wichtig ist nur dass die variable im selben kontext
nicht schon für etwas anderes benutzt wird.
Ich hab ja nur diese lineare Funktion im Kontext. Aber egal ist ja sowieso nicht relevant

Schon mal Danke an Closure (und alle anderen auch, jedoch waren mir die Formelsammlungen und Liste der nichtlinearen Funktionen bereits geläufig )

Greets

fletschge
Mit Zitat antworten
  #8 (permalink)  
Alt 14-10-2006, 22:44
begun k
 Banned
Links : Onlinestatus : begun k ist offline
Registriert seit: Sep 2006
Beiträge: 5
begun k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

versuchen wir es doch mit etwas systematischer Mathematik zu lösen.
Das Koordinatensystem ist (x,y), wobei x waagrecht nach rechts und y senkrecht nach unten gehen. Der Kreismittelpunkt heisse A, der Tangentialpunkt B, der laufende Punkt auf der Tangente heisse T, der Schnittpunkt mit der x-Achse U, derjenige mit der y-Achse V.

Dann lautet die Gleichung der Tangente vektoriell sehr einfach. (T-B).(B-A) = 0.
In Koordinaten gibt das:
(Tx-Bx)*(Bx-Ax) + (Ty-By)*(By-Ay)=0.

Für die Punkte U und V auf der Tangente gilt diese Gleichung auch, indem der Buchstabe T durch U oder V ersetzt wird.
(Ux-Bx)*(Bx-Ax) + (Uy-By)*(By-Ay)=0.
(Vx-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.

Für den Punkt U auf der x-Achse musst du Uy=0 setzen, die Gleichung lautet also:
(Ux-Bx)*(Bx-Ax) + (0-By)*(By-Ay)=0.
Das löse mit einfacher Algebra nach Ux auf.

für den Punkt V auf der y-Achse musst du Vx=0 setzen, die Gleichung lautet also:
(0-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.
Das löse mit einfacher Algebra nach Vy auf.

Das war eine interessante Fragestellung.
Mit Zitat antworten
  #9 (permalink)  
Alt 14-10-2006, 23:15
fletschge
 Newbie
Links : Onlinestatus : fletschge ist offline
Registriert seit: Jul 2006
Beiträge: 24
fletschge ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo begun k!

Erst mal Danke für deinen sehr wertvollen Beitrag. An eine vektorielle Lösung hab ich noch gar nicht gedacht


Zitat:
Original geschrieben von begun k
versuchen wir es doch mit etwas systematischer Mathematik zu lösen.
Das Koordinatensystem ist (x,y), wobei x waagrecht nach rechts und y senkrecht nach unten gehen. Der Kreismittelpunkt heisse A, der Tangentialpunkt B, der laufende Punkt auf der Tangente heisse T, der Schnittpunkt mit der x-Achse U, derjenige mit der y-Achse V.
Geh ich richtig in der Annahme dass T entweder die X oder die Y Achse darstellt? Also Ux oder Vx (Ich möcht das schliesslich noch kapieren )


Zitat:
Dann lautet die Gleichung der Tangente vektoriell sehr einfach. (T-B).(B-A) = 0.
In Koordinaten gibt das:
(Tx-Bx)*(Bx-Ax) + (Ty-By)*(By-Ay)=0.

Für die Punkte U und V auf der Tangente gilt diese Gleichung auch, indem der Buchstabe T durch U oder V ersetzt wird.
(Ux-Bx)*(Bx-Ax) + (Uy-By)*(By-Ay)=0.
(Vx-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.

Für den Punkt U auf der x-Achse musst du Uy=0 setzen, die Gleichung lautet also:
(Ux-Bx)*(Bx-Ax) + (0-By)*(By-Ay)=0.
Das löse mit einfacher Algebra nach Ux auf.

für den Punkt V auf der y-Achse musst du Vx=0 setzen, die Gleichung lautet also:
(0-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.
Das löse mit einfacher Algebra nach Vy auf.
Is ja super! *freu*

Zitat:
Das war eine interessante Fragestellung.
Ich habe viele solcher Kreise (ca 10). Nun gehts darum, dass ich weitere Punkte auf äusseren Kreisen mit einem inneren Punkt verbinde, dabei sollen sich die Verbindungen (Gerade) nicht schneiden. Das geht nun mit der Überprüfung, sie dürfen auch nicht die Kreise schneiden (daher diese Formel).

Besten Dank!

Gruss
fletschge
Mit Zitat antworten
Antwort

Lesezeichen


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

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 15:58 Uhr.