# Difference between revisions of "C++:3D Exercises"

(→Normal to a plane) |
(→Normal to a plane) |
||

Line 161: | Line 161: | ||

<question> | <question> | ||

Find the unit normal to the plane that contains the three points given. | Find the unit normal to the plane that contains the three points given. | ||

+ | <hint> | ||

+ | You will probably want the functions: | ||

+ | float *subtract(float a[3], float b[3]){ | ||

+ | float *r = new float[3]; | ||

+ | for (int i=0;i<3;i++) | ||

+ | r[i] = a[i]-b[i]; | ||

+ | return r; | ||

+ | } | ||

+ | |||

+ | float *scalarproduct(float x,float a[3]){ | ||

+ | float *r = new float[3]; | ||

+ | for (int i=0;i<3;i++) | ||

+ | r[i] = x*a[i]; | ||

+ | return r; | ||

+ | } | ||

+ | |||

+ | float length(float a[3]){ | ||

+ | float r=sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]); | ||

+ | return r; | ||

+ | } | ||

+ | |||

+ | float *crossproduct(float a[3], float b[3]){ | ||

+ | float *r = new float[3]; | ||

+ | r[0] = a[1]*b[2]-a[2]*b[1]; | ||

+ | r[1] = a[2]*b[0]-a[0]*b[2]; | ||

+ | r[2] = a[0]*b[1]-a[1]*b[0]; | ||

+ | return r; | ||

+ | } | ||

+ | |||

+ | </hint> | ||

<prog><![CDATA[ | <prog><![CDATA[ | ||

#include <math.h> | #include <math.h> |

## Revision as of 14:14, 23 November 2011

## Dot Product

Calculate the dot product of two vectors.
Fill in the details in the function **dotproduct**

Wikipedia includes a good article on dot products. http://en.wikipedia.org/wiki/Dot_product#Definition

[Font]
[Default]
[Show]
[Resize]
[History]
[Profile]

## Cross Product

Calculate the cross product of two vectors.
Fill in the details in the function **crossproduct**

Wikipedia includes a good article on cross products. http://en.wikipedia.org/wiki/Cross_product#Coordinate_notation

[Font]
[Default]
[Show]
[Resize]
[History]
[Profile]

## Vector Length

Calculate the magnitude of a vector.
Fill in the details in the function **length**

[Font]
[Default]
[Show]
[Resize]
[History]
[Profile]

## Normal to a plane

Line: 123 DOMDocument::loadXML(): StartTag: invalid element name in Entity, line: 7

Line: 123 DOMDocument::loadXML(): StartTag: invalid element name in Entity, line: 14