 | | Re: Another matrix inverse question
|
|
(...) Sorry about that. I wrote that code so long ago that I forgot that it wasn't a fully general-purpose matrix inversion routine. (Note that it is the way it is so that it will perform better, not because I was too lazy to do the whole shebang.) (...) (20 years ago, 10-Apr-07, to lugnet.cad)
|
| |
 | | Re: Another matrix inverse question
|
|
(...) I think you've converted Travis' code properly, but just looking at the code, I'd say it's only intended to produce the inverse of the upper-left 3x3 matrix. None of the other rows or the determinant depend in any way on the 4th row, and it's (...) (20 years ago, 10-Apr-07, to lugnet.cad)
|
| |
 | | Another matrix inverse question
|
|
Hello, I read James Reynolds' question about inverse matrices and the responses with interest since I similar questions about matrix inverses. I used Travis's TCVector::invertMatrix code as the base for a Java function. Other than the change to Java (...) (20 years ago, 10-Apr-07, to lugnet.cad)
|
| |
 | | Re: how does a line ends?
|
|
(...) Now that I'm at work, I'm able to look at Microsoft's implementation of fgets for Visual Studio 2005. They do a lock on the file prior to their loop, then call _fgetc_nolock to get each character, instead of fgetc or fread. (That's an (...) (20 years ago, 9-Apr-07, to lugnet.cad, FTX)
|
| |
 | | Re: how does a line ends?
|
|
(...) I thought about using a static instead of ungetc() in the first version of readLine() that I posted. This means that you can only read from one open file at a time, but that is usually an OK restriction as long as the programmer is aware of (...) (20 years ago, 8-Apr-07, to lugnet.cad, FTX)
|
| |
 | | Re: how does a line ends?
|
|
(...) As long as you only have one character to 'unget' you could probably speed it up by introducing a static char which holds the 'ungetted' char (or null), instead of going through ungetc() -- fgetc(). OTOH, the if-statement to check if there is (...) (20 years ago, 8-Apr-07, to lugnet.cad)
|
| |
 | | Re: Inverse matrix?
|
|
The latest: (URL) (20 years ago, 8-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: Inverse matrix?
|
|
(...) Well I'll be! That works too! Thanks you guys! James (20 years ago, 8-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: Inverse matrix? [DAT]
|
|
(...) Did you mean this: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ] [ 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 ] I have yet to try it. James (20 years ago, 8-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: Inverse matrix?
|
|
(...) I learned my matrix math from a 3d game programming book and I have no idea what the diagonals are... I was going to look it up but I got Travis' code to work! (URL) might still look it up as I may need to know about it) James (20 years ago, 7-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: Inverse matrix?
|
|
(...) I mean swap the OFF-diagonals, leave the diagonals as is. (...) (20 years ago, 7-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: how does a line ends?
|
|
(...) Interesting. I looked at the C runtime library sources that came with MSVC++ 6.0. The fgets() function there is definitely a little different than either yours or the one ROSCO linked. It does have a couple calls for thread safety, but (...) (20 years ago, 7-Apr-07, to lugnet.cad, FTX)
|
| |
 | | Re: Inverse matrix?
|
|
(...) Just take the transpose of the 3x3 world rotation matrix and it should work as the inverse. Transpose means swap diagonals M[1,2] <=> M[2,1] etc. If this doesn't work I've misunderstood you. Tim (20 years ago, 7-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: Inverse matrix?
|
|
(...) Hehehe, cool, I'll try that. Thanks! James (20 years ago, 7-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: Inverse matrix?
|
|
Clarification! .... snip (...) I am using additional points to specify the location of feet. Combined with the model location, I have 3 points for the hip and feet. [now the following paragraph should make more sense] (...) (20 years ago, 7-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: Inverse matrix?
|
|
(...) Arg. I thought this was going to be easy. I liked this part of the wikipedia article: "In practice, inverting a matrix is rarely required. Most of the time, one is really after the solution of a particular system of linear equations." Hm. I (...) (20 years ago, 7-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: how does a line ends?
|
|
(...) Thanks, ROSCO. I took that code and modified it to use char instead of _TCHAR, and got timings of 720-750ms, compared to the 750-780ms I got with my original one. I then modified it to support CR and LF interchangeably, and got back to the (...) (20 years ago, 7-Apr-07, to lugnet.cad, FTX)
|
| |
 | | Re: Inverse matrix?
|
|
(...) I just realised something... do you want a general inverse or a specific inverse? Some inversions are simple eg. a pure rotation can be inverted by taking its transpose and reflections are their own inverses. Tim (20 years ago, 7-Apr-07, to lugnet.cad.ray, lugnet.cad)
|
| |
 | | Re: how does a line ends?
|
|
(...) Just as a proof of the value of disk caching, loading the same model using the system fgets after a fresh reboot, the same loading portion took 3300ms. Also, I switched the feof calls out for a check of the value against EOF just to see if it (...) (20 years ago, 7-Apr-07, to lugnet.cad, FTX)
|
| |
 | | Re: how does a line ends?
|
|
(...) (URL) Google to the rescue>. ROSCO (20 years ago, 7-Apr-07, to lugnet.cad, FTX)
|