texturas - texto en 3d java
Ajustar una lĂnea 3D a datos de puntos 3D en Java? (3)
He pasado una cantidad decente de tiempo tratando de encontrar una forma sencilla de hacerlo; idealmente, existe una biblioteca mágica en alguna parte que tomará mi conjunto de puntos de datos 3D y devolverá 2 puntos en la línea de mejor ajuste utilizando ortogonal regresión o mínimos cuadrados y también devuelve el error de la línea ajustada. Existe tal cosa, y si es así, ¿dónde?
Es bastante fácil hacerlo si conoce el truco: http://www.scribd.com/doc/21983425/Least-Squares-Fit
Más dimensiones significa más coeficientes, pero son lo suficientemente fáciles de agregar. Las ideas son todas iguales.
Esto es bastante fácil de hacer, pero para escribirlo usted necesitará un solucionador de autovalores o una descomposición de valores singulares. Cree la matriz nx3 A, de sus datos (x-xbar, y-ybar, z-zbar) como columnas. Guarde esos medios de columna para más adelante, lo llamaré V0 = [xbar, ybar, zbar].
Ahora, calcule los valores propios y vectores propios de A ''* A, es decir, la matriz 3x3 formada a partir de la transposición A multiplicada por A.
Si estos datos se encuentran en una línea en R ^ 3, entonces uno de esos valores propios será significativamente mayor que los otros dos valores propios. Si esto no es cierto, entonces la línea de regresión ortogonal no será estimada correctamente.
Tome el vector propio que está asociado con el valor propio más grande de A ''* A. Entonces, si V es el vector propio correspondiente, la línea de regresión ortogonal se define como
V (t) = V0 + t * V
Cualquier punto en esa línea puede ser dado por algún valor del parámetro t.
Alternativamente, calcule la descomposición del valor singular de A, y tome el vector singular derecho que corresponde al mayor valor singular de A.
En cualquier caso, si desea calcular los errores para los puntos de datos, esto se definiría simplemente como la distancia ortogonal a la línea en cuestión.
Google para "biblioteca de regresión lineal de mínimos cuadrados de Java" y debería encontrar algunas opciones. Uno es Drej . Aunque no he usado esto yo mismo.
EDITAR - No estoy seguro de que esto responda la pregunta - No sé si se admiten datos 3D.