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
Uber App Clone 1.0
TeeChart NET for Xamarin.Forms 2017
JavaScript Framework Shield UI 1.7.33
SentiVeillance SDK Trial 6.0.171442
Instacart Clone 1.0
Dynamic Product Options for Magento 2 2.3.0
AnyChart JS Charts and Dashboards 8.0.0
Key Transformation 8.1131
AnyGantt JS Gantt Charts 8.0.0
Hex Comparison 5.12
SecureBridge 8.1
Hotelline PMS 1.0
TeeBI for RAD Studio Suite 2017
AnyStock Stock and Financial JS Charts 8.0.0
Entrepreneur News Portal 1.0.2
Top Code
Portfolio Optimizer Tool 1.0
Using MATLAB to Develop Portfolio Optimization Models 1.0
MLM Software ONE 1.5.46
Vincenty,Angle,Latitude,Longitude class 1.0.3
MMORPG Creator 1.0
Remez Algorithm 1.0
The BEST TIC-TAC-TOE 1.1
mouse simulation 1.0
Uber App Clone 1.0
VintaSoft Twain .NET SDK 10.2.0.1
Convert form XYZ coordinate to YBC format (LRA) 1.0
PlaySMS 0.1
Bangla Numbers in Date and Time 0.5
Trading Software 1.2.4
HTML Tidy Library for HTML Tools 1.1
Top Rated
Jango Clone Script 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
ADO.NET Provider for ExactTarget 1.0
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
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