Code Directory
 Visual Basic & VB.NET
New Code
ODBC Driver for NetSuite 1.2
Rapid CSS 2018 15.0
ByteScout PDF Extractor SDK
TeeGrid for .NET 2018
HotelDruid 2.2.3
Metamill 8.2.2022
EXE Stealth Protector 4.23
EXE Bundle - The file joiner 3.14
WeBuilder 2018 15.0
SuiteCRM Customer Portal 1.0
Magento Admin Mobile App 1.0
AnyStock Stock and Financial JS Charts 8.2.0
Kijiji Script 1.0.3
SSIS Data Flow Components 1.7
ODBC Driver for Amazon Redshift 1.0
Top Code
ODBC Driver for NetSuite 1.2
College Management System Script 1.0.4
Calculate PSD of a signal using Welch algorithm 1.0
Issue Manager App 1.0
MATLAB Support Package for Arduino (aka ArduinoIO Package) 1.0
Magenta Systems File Transfer Components 1.5
Interfun Chat Server 1.0.26
School Management Script 1.0.4
Rapid CSS 2018 15.0
Readymade MLM Software 2.02
T-Shirt Designer Script 1.65
SuDoKu Solver Applet 0.1.0
Circular convolution using DCT and DST 1.0
Metamill 8.2.2022
PHP Image Resize Script 1.0
Top Rated
Output Messenger 1.8.0
Aliexpress Clone- Ec21 Script 1
Indiegogo Clone 3.0
Online Food Ordeing System 1.0
PHP Image Resize Script 1.0
Best Spotify Clone 1.0
Get Random Record Based on Weight 1.0.0
Travel Portal Script 9.29
Magento Product Designer 1.0
OFOS - Just Eat Clone Script 1.0
PrestaShop Upload Images Module 1.2.1
Trading Software 1.2.4
Deals and Discounts Website Script 1.0.2
Readymade MLM Products 2.01
ADO.NET Provider for ExactTarget 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:

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, -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