3 bok trojkata z 2 wektorow

0

W zalaczniku jest trojakt musze znalezc kierunek i dlugosc wektora CA moze byc AC :]

mam jedynie podany wektor AB i jego dlugosc ( X )

drugi wektor BC jest znormalizowany czyli po prostu wskazuje kierunek, niby proste a siedze nad tym dluuugo

Aha z latwoscia moge wyliczyc kazdy kat w trojkacie :) wystarczy jedynie znalezc kat miedzy wektorami AB i BC i tam odjac np. od 90 stopni zebyznalezc drugi niewiadomy kat :P

Na wikipedii doczytalem sie ze znormalizowane [CA] * CB daje nam dlugosc wektora CA ( dot product ) -> http://en.wikipedia.org/wiki/Scalar_projection

ale i tak to mi w niczym nie pomaga, funkcja co prawda dziala ten dot ale musialbym podac do tej funkcji dane ktorych nie mam 0o

0

http://en.wikipedia.org/wiki/Vector_projection ?
Jak to w niczym nie pomaga?

0

Na pierwszy rzut oka:
Znając AB oraz wiedząc że ABC to trójkąt prostokątny możesz wyznaczyć równanie prostej na której leżą A oraz C. Znając wektor BC możesz wyznaczyć równanie prostej na której leżą B oraz C.
Przecięcie tych dwóch prostych daje ci oczywiście współrzędne punktu C.

0

rownanie prostej odpada nie umiem wyznaczac prostej na podstawie Ax+By+Cz+D=0 dla mnie to czarna magia, poszukuje sposobu na wektorowe oblicznenie tego czegos
pewnie shalom miales na mysli y=ax+b a to odpada w 100%

================================================

MSM jak tylko zejdzie mi baniato to wykorzystramjestem pewnyw 99% ze to to o co mi chodzilo dzieki :) :PP

0

Dupa zbita nie dziala wyswietla mi identyczne wyniki co uzycie scalar projection

 t3dpoint A;
t3dpoint B;
t3dpoint C;

A.x = 4.0f;
A.y = 0.0f;
A.z = 0.0f;

B.x = 6.0f;
B.y = 0.0f;
B.z = 0.0f;


C.x = 4.0f;
C.y = 4.0f;
C.z = 0.0f;



 t3dpoint AB = vectorAB(A,B);
  t3dpoint BA = vectorAB(B,A);
   t3dpoint AC = vectorAB(A,C);
	t3dpoint CA = vectorAB(C,A);
	 t3dpoint BC = vectorAB(B,C);
	  t3dpoint CB = vectorAB(C,B);

  t3dpoint nAB = Normalize(AB);
  t3dpoint nBA = Normalize(BA);
   t3dpoint nAC = Normalize(AC);
	t3dpoint nCA = Normalize(CA);
	 t3dpoint nBC = Normalize(BC);
	  t3dpoint nCB = Normalize(CB);

t3dpoint dot = VectorProjectionBDIR(CB,nCA,true);
ShowMessage("POWINNO BYC: 4 a jest = "+FloatToStr(VectorLength(dot))); //jest 4 


	   dot = VectorProjectionBDIR(CA,nCB,true);
ShowMessage("POWINNO BYC: 4,4721 a jest = "+FloatToStr(VectorLength(dot))); /jest 3,5777


	   dot = VectorProjectionBDIR(BA,nBC,true);
ShowMessage("POWINNO BYC: 4 a jest = "+FloatToStr(VectorLength(dot)));//jest 0.89



/////////////////////////////////////////////////////////////////////////////////////////////////////

a to funkcja\

t3dpoint __fastcall VectorProjectionBDIR(t3dpoint A, t3dpoint B,bool NormalizedB)
{
t3dpoint i = B;
if ( NormalizedB == false ) i = Normalize( i );
				 float dotp = Dot(A,i);

					t3dpoint r = vector_multiple(i,dotp);

					return r;
}

wyniki zwracaja mi to samo co same float dotp = Dot(A,i); to jakas paranoja :0
0

errererere

1 użytkowników online, w tym zalogowanych: 0, gości: 1