Difference between revisions of "Other Problems"
(Created page with "==Compile glui in windows== download: <br> http://glui.sourceforge.net/#download <br> Go to msvc folder and build. A problem you may met:<br> "There is an incompatibility betwee...") |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
To fix the error, right click on the project name in the Solution Explorer tab and select Properties -> C/C++ -> Preprocessor -> Preprocessor definitions and append GLUT_BUILDING_LIB to the existing definitions, seperated by semicolons. " <br> | To fix the error, right click on the project name in the Solution Explorer tab and select Properties -> C/C++ -> Preprocessor -> Preprocessor definitions and append GLUT_BUILDING_LIB to the existing definitions, seperated by semicolons. " <br> | ||
+ | ==Calculate 3D projection 在三维空间中,点到平面的投影== | ||
+ | |||
+ | 空间点Po(X,Y,Z),以及空间平面(Pp, Np) 其中Pp是平面上任意一点,Np是平面的单位法向量,那么 Po在平面(Pp,Np)上的投影点坐标P = Po - Np * ((Po-Pp)*Np) | ||
+ | 理由就是Po到平面的距离就是D=((Po-Pp)*Np),把Po沿着法向量的反方向移动D就可以了 | ||
+ | |||
+ | MatLab Code | ||
+ | <pre> | ||
+ | Po=[5.116,3.769,0.851]; | ||
+ | Pa=[3.351,1.419,-1.669]; | ||
+ | Pb=[-1.249,2.196,0.851]; | ||
+ | Pc=[2.646,0.2,4.054]; | ||
+ | Np = cross((Pa-Pb),(Pc-Pb)); | ||
+ | Np = Np / norm(Np); | ||
+ | P = Po - Np * ((Po-Pb) * Np'); | ||
+ | //P = | ||
+ | // | ||
+ | // 4.1833 0.7237 0.0875 | ||
+ | </pre> | ||
+ | ==3D Transformation matrix math== | ||
+ | ===Local mat to world Mat=== | ||
+ | WorldMat = LocalMat * ParentWorldMat<br> | ||
+ | All Matrixes are 4x4 | ||
+ | ===Local Translation to World Translation=== | ||
+ | WorldVec = LocalVec * ParentWorldMat<br> | ||
+ | |||
+ | ==How To Fix Windows 8/Windows 10 touchscreen stopped working== | ||
+ | |||
+ | See this link [[How To Fix Windows Touch Screen]] |
Latest revision as of 15:38, 31 October 2015
Contents
Compile glui in windows
download:
http://glui.sourceforge.net/#download
Go to msvc folder and build.
A problem you may met:
"There is an incompatibility between glut.h and Visual Studio .NET. that results in compile errors: error C2381: 'exit' : redefinition; __declspec(noreturn) differs
error C3861: 'exit': identifier not found, even with argument-dependent lookup
To fix the error, right click on the project name in the Solution Explorer tab and select Properties -> C/C++ -> Preprocessor -> Preprocessor definitions and append GLUT_BUILDING_LIB to the existing definitions, seperated by semicolons. "
Calculate 3D projection 在三维空间中,点到平面的投影
空间点Po(X,Y,Z),以及空间平面(Pp, Np) 其中Pp是平面上任意一点,Np是平面的单位法向量,那么 Po在平面(Pp,Np)上的投影点坐标P = Po - Np * ((Po-Pp)*Np) 理由就是Po到平面的距离就是D=((Po-Pp)*Np),把Po沿着法向量的反方向移动D就可以了
MatLab Code
Po=[5.116,3.769,0.851]; Pa=[3.351,1.419,-1.669]; Pb=[-1.249,2.196,0.851]; Pc=[2.646,0.2,4.054]; Np = cross((Pa-Pb),(Pc-Pb)); Np = Np / norm(Np); P = Po - Np * ((Po-Pb) * Np'); //P = // // 4.1833 0.7237 0.0875
3D Transformation matrix math
Local mat to world Mat
WorldMat = LocalMat * ParentWorldMat
All Matrixes are 4x4
Local Translation to World Translation
WorldVec = LocalVec * ParentWorldMat
How To Fix Windows 8/Windows 10 touchscreen stopped working
See this link How To Fix Windows Touch Screen