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

From Progzoo
Jump to: navigation, search
(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