Search
Code Directory
 ASP
 ASP.NET
 C/C++
 CFML
 CGI/PERL
 Delphi
 Development
 Flash
 HTML
 Java
 JavaScript
 Pascal
 PHP
 Python
 SQL
 Tools
 Visual Basic & VB.NET
 XML
New Code
Bytescout BarCode Reader SDK 9.2.0.1716
IP2Location Geolocation Database 2017
Best Spotify Open Source Clone Script 1.0
Flipkart Clone Script 4.0.5
Database Converters for Windows 3.15
Hotelline PMS 1.2
Devart T4 Editor 1.0
dbForge Studio for SQL Server 5.5
Extreme Injector 3.7
Kickstarter Clone Script 1.0.2
Etsy Clone Script 1.0.2
ByteScout PDF Extractor SDK 8.6.0.2911
SQL Formatter for SQL Server 1.0
Database Workbench Pro 5.3.2
Paypal Clone Script 1.0.9
Top Code
Bytescout BarCode Reader SDK 9.2.0.1716
Simulink Support Package for Arduino Uno Hardware 1.0
Cuckoo Optimization Algorithm 1.0
Download all lolcat images from iCanHasCheezburger.com
Copy-move forgery detection in images
Flipkart Clone Script 4.0.5
Availability Booking Calendar PHP 1.0
Piecewise spline interpolation 1.0
mornshout for Music and Sound 1.1
MakeMyTrip Clone 7.6.2
Java File Integrity Checking - ChkSum 1.1
Kernel Ridge Regression 1.0
Gate Pass Management System 1.0.2
eLearning Management System 1.0
PAM HYIP script software 1.0
Top Rated
Get Random Record Based on Weight 1.0.0
Magento Product Designer 1.0
OFOS - Just Eat Clone Script 1.0
PrestaShop Upload Images Module 1.2.1
Trading Software 1.2.4
Solid File System OS edition 5.1
Classified Ad Lister 1.0
Aglowsoft SQL Query Tools 8.2
Sine Wave Using JavaFX 1.0
ICPennyBid Penny Auction Script 4.0
PHP Review Script 1.0
ATN Resume Finder 2.0
ATN Site Builder 3.0
Readymade MLM Software 2.02
Availability Booking Calendar PHP 1.0
Defining Cartesian Reference Frames based on Point Positions 1.0
File ID: 80281






Defining Cartesian Reference Frames based on Point Positions 1.0
Download Defining Cartesian Reference Frames based on Point Positions 1.0http://www.mathworks.comReport Error Link
License: Freeware
File Size: 20.5 KB
Downloads: 5
Submit Rating:
Defining Cartesian Reference Frames based on Point Positions 1.0 Description
Description: The main function included in the attached file is called FRAME. The algorithm implemented in this function can be useful in motion analysis (biomechanics, bioengineering).
When you know the 3-D position of at least three non-collinear points, you can define a Cartesian reference frame (coordinate system) based on these positions.
FRAME builds an orientation matrix R representing the orientation of a right handed 3-D Cartesian reference frame, based on the position of at least 3 and at most 6 non-collinear points.
FRAME features an ARRAYLAB engine (see Matlab Central > File Exchange > Multiplying two N-D arrays of matrices, vectors or scalars"). This means that FRAME accepts as input block arrays of vectors. In this case, it returns a block array of orientation matrices (see below).
Several different reference frame orientations can be defined by the same set of points. For instance, the same three points can be used to define 72 different orientations for a right-handed 3-D Cartesian reference frame! Three non-collinear points define a triangle and a plane, which in turn define seven lines (six are parallel to the three sides and the three heights of the triangle, and the seventh is normal to the plane; fig. 1). Since for each line there are two opposite directions, any of the Cartesian axes can be assigned 14 different directions. And any of these 14 directions is normal to 4 or 12 of the other directions, all of which can be used to define the other axes?
FRAME is extremely versatile, and with a simple syntax allows you to define the reference frame(s) as you prefer, in a single step.
Its input arguments include three oriented distances (d1, d2, and d3), obtained from the known point positions with vector subtractions.
For instance, if pA and pB are the positions of two points A and B, pB-pA (or -pA+pB) is the oriented distance from point A to point B. Since d1 may coincide with d3, three points are enough to define the three distances.
For instance, three position vectors (pA, pB, pC) might be used as follows:
R = FRAME(-pA+pB, -pB+pC, 'y', -pA+pB, 'z', DIM)
and six position vectors (pA, pB, pC, pD, pE, pF) might be used as follows:
R = FRAME(-pA+pB, -pC+pD, 'y', -pE+pF, 'z', DIM)
where DIM is the dimension along which the vectors are contained.
The direction of the first axis ('y' in the above examples) is defined by the vector product d1 doOCo d2. The direction of the second axis ('z' in the above example) is defined by the rejection of d3 from the first axis, coinciding with the projection of d3 on the plane defined by d1 and d2. The third axis forms with the others a right handed orthogonal reference frame. A more detailed explanation of the function syntax and the rules used to build the output array R can be found on the FRAME help text.
If pA, pB, etc. are 3-by-1 matrices, DIM = 1 and R is a single 3-by-3 orientation matrix.
The arrays pA, pB, etc. can have any size, provided they contain 3-element position vectors along one of their dimensions (DIM). For instance, if they are Nf-by-3 matrices, containing Nf positions of a moving point, sampled with a stereophotogrammetric motion capture system, R is a Nf-by-3-by-3 array, containing Nf orientation matrices. See FRAME help for details about the format of the input and output arrays.
Any matrix or array of orientation matrices R obtained with FRAME can be used to perform transformations. Multiple vector transformations can be obtained by multiplying an array of orientation matrices by an array of vectors. This "multi-product" can be performed easily, in a single step and with no loops, by calling function MULTIPROD.
MULTIPROD is a powerful generalization for N-D arrays of the MATLAB function MTIMES and the matrix multiplication operator (*). Obviously, MULTIPROD has a broad field of potential applications. For instance, it can be used to perform vector algebra (see package "Matlab Central > File Exchange > Vector algebra for multidimensional arrays of vectors"). Thus, in my opinion it deserved a separate introduction and I published it in a separate package: "Matlab Central > File Exchange > Multiplying two N-D arrays of matrices, vectors or scalars".
A few sample functions are included in this package. They determine the orientation of anatomical reference frames for segments of the human body (thorax, scapula, upper arm, arm, forearm, hand, pelvis, thigh, shank, foot), according to the definitions given by Cappozzo et al. (1995; Clinical Biomechanics, 10, 171-178) and by van der Helm et al. (2005; Journal of Biomechanics, 38, 981-992).
The code (testFRAME) I used to test the function output is included as well.

License: Freeware

Related: Dimensions, nfby, moving, Element, Found, textif, matrixthe, provided, sampled, stereophotogrammetric, Transformations, perform, Multiple, multiplying, quotmultiproductquot, arraysany, Format

O/S:BSD, Linux, Solaris, Mac OS X

File Size: 20.5 KB

Downloads: 5



More Similar Code

This is a simple gui application that used gaussian quadrature inegration based on index=1-3. It can be easily extended to higher order of indices for better accuracy. For more information visit:
http://en.wikipedia.org/wiki/Gaussian_quadrature



Data Access Layer based on dataSets is an ASP.NET tutorial in which the author offers solution for various functional problems that occur while generating data access layer. The author gives several examples like transaction management,...



This program parses the logfile given by the execution of the keylogger
command 'script -c "xinput test ID_CODE" | cat LOG_FILE' and
it is based on a Finite State Machine (FSM) to manage all
the possible combinations of...



Find a unique name based on a prefix for a content in a container
(eg. a file in a directory) adding a digit to the name

Does it in log2(n) + log2(n/2) were n is the number of duplicates

This would be used eg. in a CMS?...



Here is a quick and dirty way to sort a list of dictionary based on a key value.



Associates or launches an action to be performed by the os based on
filename extension. For example, assoc.py -e test.c will launch emacs.



This module is a 3rd party module for doDUbercart allowing to calculate shipping cost based on total order weight or total order price, and managing ranges.

You can define weight ranges: a lower weight, an upper weight and a cost.



definition process based on eclipse process fram work



Master students group of Federal University of Pernambuco working together to define and to develop an object-oriented language project based on java language as meta language.

User Review for Defining Cartesian Reference Frames based on Point Positions
- required fields
     

Please enter text on the image