Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- File: vector2D.cpp
- Created by: Vincent Le
- Creation Date: 10/31/2014
- Synopsis:
- */
- #include <iostream>
- #include <iomanip>
- #include <cmath>
- using namespace std;
- const double EPSILON(1e-12);
- // function prototypes
- // ENTER FUNCTION PROTOTYPE FOR read_vector HERE.
- void read_vector(const string &, double & x, double & y);
- // ENTER FUNCTION PROTOTYPE FOR vector_length HERE.
- double vector_length(int x, int y);
- // ENTER FUNCTION PROTOTYPE FOR write_vector HERE.
- void write_vector(const string &, double x, double y);
- // ENTER FUNCTION PROTOTYPE FOR vector_add HERE.
- void vector_add(double x1, double y1, double x2, double y2, double & x3, double & y3);
- // ENTER FUNCTION PROTOTYPE FOR vector_subtract HERE.
- void vector_subtract(double x1, double y1, double x2, double y2, double & x3, double & y3);
- // ENTER FUNCTION PROTOTYPE FOR scalar_mult HERE.
- void scalar_mult(double x1, double y1, double s, double & x2, double & y2);
- // ENTER FUNCTION PROTOTYPE FOR normalize HERE.
- void normalize(double & x, double & y);
- // ENTER FUNCTION PROTOTYPE FOR perpendicular HERE.
- void perpendicular(double x1, double y1, double x2, double y2);
- // *** DO NOT CHANGE ANY CODE IN THE MAIN FUNCTION.
- int main()
- {
- double u1, v1; // coordinates of first vector
- double u2, v2; // coordinates of second vector
- double u3, v3;
- double scalar;
- read_vector("Enter first vector (2 floats): ", u1, v1);
- read_vector("Enter second vector (2 floats): ", u2, v2);
- cout << "Enter scalar multiplier: ";
- cin >> scalar;
- cout << endl;
- write_vector("First vector: ", u1, v1);
- write_vector("Second vector: ", u2, v2);
- cout << endl;
- vector_add(u1, v1, u2, v2, u3, v3);
- write_vector("Vector add: ", u3, v3);
- vector_subtract(u1, v1, u2, v2, u3, v3);
- write_vector("Vector subtract: ", u3, v3);
- scalar_mult(u1, v1, scalar, u3, v3);
- write_vector("Scalar multiplier: ", u3, v3);
- cout << endl;
- write_vector("First vector: ", u1, v1);
- write_vector("Second vector: ", u2, v2);
- perpendicular(u1, v1, u2, v2);
- return(0);
- }
- // DEFINE FUNCTION read_vector HERE.
- void read_vector(const string & prompt, double & x, double & y)
- {
- int a, b;
- cout << prompt;
- cin >> a;
- cin >> b;
- }
- // DEFINE FUNCTION vector_length HERE.
- double vector_length(int x, int y)
- {
- int r;
- r = sqrt((pow(x,2))+(pow(y,2)));
- return r;
- }
- // DEFINE FUNCTION write_vector HERE.
- void write_vector(const string & prompt, double x, double y)
- {
- cout << prompt;
- cout << " (" << x << ", " << y << ") has length " << vector_length(x,y) << endl;
- }
- // DEFINE FUNCTION vector_add HERE.
- void vector_add(double x1, double y1, double x2, double y2, double & x3, double & y3)
- {
- x3 = x1+x2;
- y3 = y1+y2;
- }
- // DEFINE FUNCTION vector_subtract HERE.
- void vector_subtract(double x1, double y1, double x2, double y2, double & x3, double & y3)
- {
- x3 = x1-x2;
- y3 = y1-y2;
- }
- // DEFINE FUNCTION scalar_mult HERE.
- void scalar_mult(double x1, double y1, double s, double & x2, double & y2)
- {
- x2 = s*x1;
- y2 = s*y1;
- }
- // DEFINE FUNCTION normalize HERE.
- void normalize(double & x, double & y)
- {
- double a = vector_length(x,y);
- int b;
- b = 0;
- if (a != EPSILON)
- {
- x = ((x)/(sqrt((pow(x,2))+(pow(y,2)))));
- y = ((y)/(sqrt((pow(x,2))+(pow(y,2)))));
- }
- if (a == EPSILON)
- {
- x = b;
- y = b;
- }
- }
- // DEFINE FUNCTION perpendicular HERE.
- void perpendicular(double x1, double y1, double x2, double y2)
- {
- normalize(x1, y1);
- normalize(x2, y2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement