Punkt berechnen

Status
Nicht offen für weitere Antworten.

para

Neues Mitglied
hi, ich hab ein problem, was ich anhand dieses bildes ma beschreiben möchte

problem.jpg



also ich hab einen umfang gegeben, der konstant 200 bleibt

die koordinaten von punkt A werden ausgelesen,

punkt B bekomme ich heraus, weil ich den mittelpunkt von A und B auch vorgegeben habe, also kein problem

so kann ich mit vektorrechnung die länge von BC ausrechnen (in abhängigkeit vom umfang und von länge AB)

ich möchte nun aber die koordinaten vom punkt C haben, hat jemand ne idee wie das geht??



das programm soll folgendes tun:

man geht von einem mittelpunkt aus, wenn man die maus weg vom mittelpunkt bewegt, wird das dreieck (ich machs dann mit nem kegel) länger aber dafür schmaler

wenn man näher rangeht, wird das dreieck gaaanz breit, aber dafür auch sehr kurz


hoffe ihr versteht was ich meine (zur not könnt ich auch mein bisherigen code posten) und könnt mir helfen :)
 
B

Beni

Gast
Also

gegeben: xA, yA, xB, yB,

dann ist
(yA - yB, xB - xA)
Der Normalvektor auf die Gerade A-B.

Beweis: das Skalarprodukt muss 0 sein, da der Winkel zweier Vektoren als cos w = Skalarprodukt * ... definiert ist.
(xA-xB)*(yA-yB) + (yA-yB)*(xB-xA) = (yA-yB)*( (xA-xB)+(xB-xA) ) = (yA-yB)*0 = 0
 

para

Neues Mitglied
:) ja, aba dass die ortogonal sind (und wie das zu berechnen geht) weiss ich ja, nur irgendwie komm ich nicht auf den punkt (also Cx, Cy)

na ich setz mal den quelltext rein:

Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.text.*;

public class Schatten extends Applet implements MouseMotionListener
{
	// Elemente START
	Canvas CanZeife;
	TextField TfPosX, TfPosY;
	Label LaPosX, LaPosY;
	Panel PaCenter, PaEast, PaCanZeife, PaTfPosX, PaTfPosY, PaLaPosX, PaLaPosY, PaPosX, PaPosY;
	//Elemente ENDE

	//Variablen START
	int CanSize=400;
	int CanColRot = 27, CanColGruen = 58, CanColBlau = 39;
	Color CanColor = new Color(CanColRot, CanColGruen, CanColBlau); //dunkelgrün
	int MouseX, MouseY, MouseX1, MouseY1;
	//Variablen ENDE

	//Kegel START
	int KegelMitteX=CanSize/2;
	int KegelMitteY=CanSize/2;
	int PxNeu, PyNeu, Px2Neu, Py2Neu, Px3Neu, Py3Neu;
	int u=200;

	//Kegel ENDE

	public void init()
	{
		CanZeife = new Canvas();
		CanZeife.setSize(CanSize, CanSize);
		CanZeife.setBackground(CanColor);
		CanZeife.addMouseMotionListener(this);

		TfPosX = new TextField("0",4);
		TfPosY = new TextField("0",4);
		TfPosX.setEditable(false);
        TfPosY.setEditable(false);
        LaPosX = new Label("X-Pos");
        LaPosY = new Label("Y-Pos");

		PaCenter = new Panel();
		PaEast = new Panel();
		PaCanZeife = new Panel();
		PaTfPosX = new Panel();
		PaTfPosY = new Panel();
		PaLaPosX = new Panel();
		PaLaPosY = new Panel();
		PaPosX = new Panel();
        PaPosY = new Panel();

		PaTfPosX.add(TfPosX);
		PaTfPosY.add(TfPosY);
		PaLaPosX.add(LaPosX);
		PaLaPosY.add(LaPosY);

		PaPosX.setLayout(new GridLayout(2,1));
		PaPosX.add(PaLaPosX);
		PaPosX.add(PaTfPosX);

        PaPosY.setLayout(new GridLayout(2,1));
		PaPosY.add(PaLaPosY);
		PaPosY.add(PaTfPosY);

		PaCenter.add(CanZeife);

		PaEast.setLayout(new GridLayout(5,1));
		PaEast.add(new Label());
		PaEast.add(PaPosX);
		PaEast.add(new Label());
		PaEast.add(PaPosY);
		PaEast.add(new Label());

		setLayout(new BorderLayout());
		add("Center", PaCenter);
		add("East", PaEast);
	}

	public void MalenMove()
	{
		Graphics g = CanZeife.getGraphics();
		CanZeife.update(g);
		MouseY = koord(MouseY);
		PxNeu = MouseX + 2*(KegelMitteX-MouseX);
		PyNeu = MouseY + 2*(KegelMitteY-MouseY);
		kegel(g);
	}

	public void MalenDrag()
	{
		Graphics g = CanZeife.getGraphics();
		CanZeife.update(g);
		MouseY = koord(MouseY);
		int XDif = MouseX1-MouseX;
		int YDif = MouseY1-MouseY;
		MouseX1-=XDif;
		MouseY1-=YDif;
		PxNeu=PxNeu-XDif;
		PyNeu=PyNeu-YDif;

		kegel(g);
		KegelMitteX-=XDif;
		KegelMitteY-=YDif;
	}

    /// MouseMotionListener
	public void mouseDragged(MouseEvent e)
	{
		MouseX1=MouseX;
		MouseY1=MouseY;
		auslesen(e);
		MalenDrag();
	}


	public void mouseMoved(MouseEvent e)
	{
		auslesen(e);
		MalenMove();

	}
	/// MouseMotionListener Ende


	public void kegel(Graphics k)
	{
		k.setColor(new Color(CanColRot,CanColGruen+60,CanColBlau));
		neueBreite(MouseX,MouseY,PxNeu,PyNeu);

		k.drawLine(MouseX,MouseY,PxNeu,PyNeu);
		/*
                                k.drawLine(MouseX,MouseY,Px2Neu,Py2Neu);
		k.drawLine(MouseX,MouseY,Px3Neu,Py3Neu);
                                */
	}

	public int koord(int punkt)
	{
		punkt=-punkt+CanSize;
		return punkt;
	}

	public void auslesen(MouseEvent e)
	{
		DecimalFormat dezimal = new DecimalFormat("#0");
		MouseX=e.getX();
		MouseY=CanSize-e.getY();
		String StrMouseX = dezimal.format(MouseX);
		String StrMouseY = dezimal.format(MouseY);
		TfPosX.setText(StrMouseX);
		TfPosY.setText(StrMouseY);
	}

	public void neueBreite(int x1, int y1, int x2, int y2)
	{

		int a = (int) Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
		int laengeb= (int) ((u*u)-(2*u*a))/((-2*a)+(2*u));
		double p, q;
		int t1, t2;
		int ortoX, ortoY;  /// x3, y3

      /*  DAS HIER IS DIE PUnKTBEREChnUNG!!  geht aba nich :(((((
		ortoX = -(y2-y1);
		ortoY = (x2-x1);
		p= ((2*ortoX*x2)+(2*ortoY*y2))/(ortoX+ortoY);
		q= (-(laengeb*laengeb)+(x2*x2)+(y2*y2));

		t1= (int) (-0.5*p+Math.sqrt(((p*p)/4)-q));
		t2= (int) (-0.5*p-Math.sqrt(((p*p)/4)-q));

		Px2Neu = x2+t1*(ortoX);
		Py2Neu = y2+t1*(ortoY);
        Px3Neu = y2+t2*(ortoX);
		Py3Neu = y2+t2*(ortoY);

      */
	}




}


ich weiss, da is vielleicht einiges doppelt bzw unnötig, aber vielleicht hilft das ja trotzdem, so wie es da is funktionierts jedenfalls nicht ;)
 

KSG9|sebastian

Top Contributor
du hast die koordinaten von punkt a, dann kommst du zu b mit

OB = OA + AB
da hast du jeweils die koordinaten x1,x2,x3

somit sind die koordinaten von c:

OC = OB + AB + BC

du addierst jeweils die x1,x2,x3 werte und schon hast du den punkt


ansonsten eben mit skalarprodukt


ab (skarlarprodukt) bc = 0
 
G

Guest

Gast
is nich OC = OB+BC ?

ich glaub du meinst OC = OA+AB+BC

achja, ich hab das nich im dreidimensionalen koordinatensystem hehe
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Best Practice Punkt im dreidimensionalen Raum Bestimmen Allgemeine Java-Themen 24
M Bei String.format ein Komma statt einem Punkt ausgeben lassen Allgemeine Java-Themen 1
das_leon Komma statt Punkt Allgemeine Java-Themen 10
S Einen Punkt um den Ursprung drehen Allgemeine Java-Themen 5
I Figur zu bestimmtem Punkt drehen Allgemeine Java-Themen 2
R Abstand Punkt zur Geraden Allgemeine Java-Themen 35
G Z Wert - 3 Dimensionaler Punkt Allgemeine Java-Themen 13
Guybrush Threepwood Pattern gesucht: Punkt ohne Leerzeichen dahinter Allgemeine Java-Themen 3
P Datentypen float mit komma statt punkt möglich? Allgemeine Java-Themen 6
S Punkt der Klasse Points färben Allgemeine Java-Themen 7
C Prüfen ob sich ein Punkt innerhalb einer Kugel befindet (Java3D,nicht-lineare GLS) Allgemeine Java-Themen 5
J Regulärer Ausdruck - Der Punkt und der Zeilenumbruch Allgemeine Java-Themen 6
D Regular Expression Mit Punkt und Zahl Allgemeine Java-Themen 4
G Mehr als drei Nullen nach dem Punkt? Allgemeine Java-Themen 8
G split() mit komma/punkt funktioniert nicht Allgemeine Java-Themen 16
A Textfeld prüfen, ob ein Punkt eingegeben wurde Allgemeine Java-Themen 8
@ RegEx: Alle Sonderzeichen ausser dem Punkt Allgemeine Java-Themen 4
R komma oder punkt akzeptieren Allgemeine Java-Themen 5
C enum Strings mit punkt ? Allgemeine Java-Themen 3
M punkt-linie Allgemeine Java-Themen 2
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
bittedanke Wie benötigte Bits berechnen (Huffmankodierung) Allgemeine Java-Themen 7
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
ReinerCoder Kombinationsmöglichkeiten der Textfelder berechnen Allgemeine Java-Themen 14
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
MiMa Prüfziffer einer EAN Nummer berechnen Allgemeine Java-Themen 4
C Java Script Pause berechnen Allgemeine Java-Themen 5
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
MaxG. Best Practice Alle Kombinationen berechnen Allgemeine Java-Themen 3
Aruetiise Funktion(y = mx+n) in String speichern und berechnen Allgemeine Java-Themen 9
N Das große O berechnen Allgemeine Java-Themen 2
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
N Kombinationen beliebiger Größe berechnen Allgemeine Java-Themen 1
The Pi Anzahl der Gewichtscheiben berechnen Allgemeine Java-Themen 11
B Hirsch-Index berechnen Allgemeine Java-Themen 11
B Umfang berechnen für Polygone Allgemeine Java-Themen 18
C pplet Mitelwert Berechnen Allgemeine Java-Themen 0
J Primzahlen berechnen Allgemeine Java-Themen 13
K F-Verteilung FINV in Java berechnen Allgemeine Java-Themen 4
A Helligkeit eines Bildes berechnen Allgemeine Java-Themen 1
P Methoden Alle Kombinationen aus 2 Karten berechnen Allgemeine Java-Themen 2
C mp3-Lied Dauer berechnen Allgemeine Java-Themen 1
L Winkel eines Vektors berechnen [Anfängerprob] Allgemeine Java-Themen 5
R Threads Taskzeit berechnen Allgemeine Java-Themen 12
S Eclipse Entfernung berechnen Allgemeine Java-Themen 16
T Kreis und sekant schnittpunkt berechnen mit latitude longitude Allgemeine Java-Themen 4
B Java Diffentialgleichungen berechnen Allgemeine Java-Themen 3
W 2D-Grafik Kontrast eines Bildes berechnen Allgemeine Java-Themen 6
T Taylorpolynom berechnen Allgemeine Java-Themen 14
S Erste Schritte Mittelsenkrechte berechnen Allgemeine Java-Themen 3
P Matrix Kurtosis berechnen Allgemeine Java-Themen 40
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
S Teiler Berechnen Allgemeine Java-Themen 6
Kr0e Differenzen von Bildern berechnen - Remote control Allgemeine Java-Themen 2
D md5 berechnen für BufferedImage Allgemeine Java-Themen 5
J bewegliche Feiertage berechnen Allgemeine Java-Themen 7
W Rechnungsbetrag berechnen Allgemeine Java-Themen 2
reibi Checksumme für ein File berechnen Allgemeine Java-Themen 12
M Integral berechnen Allgemeine Java-Themen 5
D Primzahlen berechnen funktioniert nicht Allgemeine Java-Themen 2
S Algorithmus um nächst folgende Primzahl zu berechnen Allgemeine Java-Themen 7
Developer_X Prozentdifferenz berechnen. Allgemeine Java-Themen 13
M Kombinationen über rekursiven Algorithmus berechnen? Allgemeine Java-Themen 10
M Monatliche Zeitspannen berechnen Allgemeine Java-Themen 3
Ark Arkussinus effizient berechnen Allgemeine Java-Themen 12
Iron Monkey Potenzzahlen mit shiftLeft berechnen? Allgemeine Java-Themen 13
N Rechenzeit berechnen? Allgemeine Java-Themen 3
H Schrifthöhe berechnen / Swing Allgemeine Java-Themen 5
T ungerade zahlen berechnen Allgemeine Java-Themen 3
X Suche Java Klasse die Feiertage berechnen kann Allgemeine Java-Themen 2
G ganzzahlige Potenz schnell berechnen Allgemeine Java-Themen 4
M Lautstärke von Audiosignal live berechnen Allgemeine Java-Themen 7
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
T Arbeitsstunden berechnen Allgemeine Java-Themen 8
M Date Range auswerten und die Monate berechnen Allgemeine Java-Themen 2
V Setter zum Berechnen nutzen? Allgemeine Java-Themen 5
G Richtung berechnen anhand Koordinaten Allgemeine Java-Themen 3
P Dauer (Tage, Stunden, Minuten, Sekunden) berechnen Allgemeine Java-Themen 5
D Mittelwert einer Menge von Doubles berechnen Allgemeine Java-Themen 3
P Winkel berechnen. Allgemeine Java-Themen 3
0 Alle Teiler einer Zahl performant berechnen? Allgemeine Java-Themen 9
B Was würdet ihr dafür berechnen? Allgemeine Java-Themen 7
T MessageDigest von einem char[] berechnen Allgemeine Java-Themen 7
S den zweit niedrigsten wert in einem array berechnen Allgemeine Java-Themen 2
E CRC 8 Berechnen Allgemeine Java-Themen 1
M Math-String-Formel berechnen lassen Allgemeine Java-Themen 4
B Ellipsen Kreisbahnen berechnen! Allgemeine Java-Themen 11
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
clemente lanman und nt password berechnen Allgemeine Java-Themen 7
J an und bn berechnen Allgemeine Java-Themen 5
F Datum mit anzahl tagen berechnen Allgemeine Java-Themen 3
B Differenz in Monaten berechnen --- DateDiff()? Allgemeine Java-Themen 12
B Distance berechnen! Allgemeine Java-Themen 7
D Feiertage berechnen Allgemeine Java-Themen 8
F vergangene Zeit berechnen Allgemeine Java-Themen 6
R Zeitspannen berechnen Allgemeine Java-Themen 7
N 2 hoch 100 berechnen Allgemeine Java-Themen 8
C x-te Wurzel berechnen Allgemeine Java-Themen 2
M Formel in einem String während Laufzeit berechnen. Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben