本文整理汇总了Java中javax.vecmath.Matrix3f.getElement方法的典型用法代码示例。如果您正苦于以下问题:Java Matrix3f.getElement方法的具体用法?Java Matrix3f.getElement怎么用?Java Matrix3f.getElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.vecmath.Matrix3f
的用法示例。
在下文中一共展示了Matrix3f.getElement方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getJmolRotation
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
/** get the rotation out of Jmol
*
* @return the jmol rotation matrix
*/
public Matrix getJmolRotation(){
Matrix jmolRotation = Matrix.identity(3, 3);
//structurePanel.executeCmd("show orientation;");
JmolViewer jmol = getViewer();
Object obj = jmol.getProperty(null,"transformInfo","");
// System.out.println(obj);
if ( obj instanceof Matrix3f ) {
Matrix3f max = (Matrix3f) obj;
jmolRotation = new Matrix(3,3);
for (int x=0; x<3;x++) {
for (int y=0 ; y<3;y++){
float val = max.getElement(x,y);
// System.out.println("x " + x + " y " + y + " " + val);
jmolRotation.set(x,y,val);
}
}
}
return jmolRotation;
}
示例2: cofac
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
private static float cofac(Matrix3f mat, int r1, int c1, int r2, int c2) {
return mat.getElement(r1, c1) * mat.getElement(r2, c2) - mat.getElement(r1, c2) * mat.getElement(r2, c1);
}
示例3: getMatrixElem
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
private static float getMatrixElem(Matrix3f mat, int index) {
int i = index % 3;
int j = index / 3;
return mat.getElement(i, j);
}
示例4: bt_mat3_dot_col
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
/**
* Returns the dot product between a vec3f and the col of a matrix.
*/
public static float bt_mat3_dot_col(Matrix3f mat, Vector3f vec3, int colindex) {
return vec3.x*mat.getElement(0, colindex) + vec3.y*mat.getElement(1, colindex) + vec3.z*mat.getElement(2, colindex);
}
示例5: diagonalize
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
public static void diagonalize(Matrix3f m_el, Matrix3f rot, float threshold, int maxSteps) {
rot.setIdentity();
for (int step = maxSteps; step > 0; step--) {
int p = 0;
int q = 1;
int r = 2;
float max = Math.abs(m_el.getElement(0, 1));
float v = Math.abs(m_el.getElement(0, 2));
if (v > max) {
p = 1;
q = 2;
r = 0;
max = v;
}
float t = threshold * Math.abs(m_el.getElement(0, 0)) + Math.abs(m_el.getElement(1, 1)) + Math.abs(m_el.getElement(2, 2));
if (max <= t) {
if (max <= BulletGlobals.SIMD_EPSILON * t) {
return;
}
step = 1;
}
float mpq = m_el.getElement(p, q);
float theta = m_el.getElement(q, q) - m_el.getElement(p, p) / (2 * mpq);
float theta2 = theta * theta;
float cos;
float sin;
if (theta2 * theta2 < 10f / BulletGlobals.SIMD_EPSILON) {
t = (theta >= 0)? 1f / (theta + (float)Math.sqrt(.5f / theta2))
: 1f / (theta - (float)Math.sqrt(1 + theta2));
cos = 1 / (float)Math.sqrt(1 + t * t);
sin = cos * t;
} else {
t = 1f / (theta * (2 + .5f / theta2));
cos = 1 - .5f * t * t;
sin = cos * t;
}
m_el.setElement(p, q, 0);
m_el.setElement(q, p, 0);
m_el.setElement(p, p, m_el.getElement(p, p) - t * mpq);
m_el.setElement(q, q, m_el.getElement(q, q) + t * mpq);
float mrp = m_el.getElement(r, p);
float mrq = m_el.getElement(r, q);
float tmp1 = cos * mrp - sin * mrq;
m_el.setElement(r, p, tmp1);
m_el.setElement(p, r, tmp1);
m_el.setElement(r, q, tmp1);
m_el.setElement(q, r, tmp1);
Vector3f row = new Vector3f();
for (int i = 0; i < 3; i++) {
m_el.getRow(i, row);
mrp = VectorUtil.getCoord(row, p);
mrq = VectorUtil.getCoord(row, q);
VectorUtil.setCoord(row, p, cos * mrp - sin * mrq);
VectorUtil.setCoord(row, q, cos * mrq - sin * mrp);
}
}
}