Ask Question, Ask an Expert

+61-413 786 465

info@mywordsolution.com

Ask Computer Engineering Expert

Question :

Suppose you have a ray of light that hits a flat surface such as a mirror and is reflected. What is the direction of reflection? This is a problem that arises in areas such as optics and computer graphics. To solve it, we need to know the original direction of the light ray, and the orientation of the surface. Let the direction be given by a vector v = (vx , vy, vz), and let the surface orientation be specified by an outward normal vector n = (nx , ny , nz) of the surface1.

To compute the reflection vector we first check if v is heading towards the surface. If it is not, then it will not reflect off the surface. This check is done by using the dot product v · n = vxnx + vyny + vznz .

Your first task in this part is to write a function: double dotProduct(double vx, double vy, double vz, double nx, double ny, double nz) that computes the dot product. If the dot product is greater than or equal to zero, the ray of light is headed away from (or parallel to) the surface, and so no reflection occurs. So we only compute the reflection vector if the dot product is less than zero. In this case, the next step is to normalize the surface normal vector by dividing each component by the vector's length2; this ensures the resulting vector has unit length. Write a function:

void normalize(double& wx, double& wy, double& wz) that, given any vector (w x , w y , w z ), computes its length, divides each component by that length, and then uses call by reference to return those components. The final step is to use the formula r = v - 2(v . n)n to compute the reflection vector. Here n is the normalized vector from the last step. Write a function:

1 A normal of a flat surface is a vector perpendicular to the surface. An outward normal is any such vector pointing outward from the surface object rather than inward.

2 Recall the length of a 3D vector w is given by void reflectionVector(double vx, double vy, double vz, double nx, double ny, double nz, double& rx, double& ry, double& rz) that does the following:

(i) takes the original surface normal vector n and normalizes it using the  normalize function,

(ii) computes the reflection vector r = (rx, ry, rz ) (note to do this the formula above needs to be applied three times: once for each of the x, y, and z components; also note that computing the reflection vector requires use of the dotProduct function), and

(iii) uses call by reference to return the reflection vector components. Finally, write a main driver program that does the following:

1. Asks the user to input the original direction, and then input the surface outward normal.

2. Checks if reflection occurs. To do this it should use the dotProduct function.

3. If reflection does not occur, your main program should print out an appropriate message. If reflection does occur, your main program should call the reflectionVector function to compute the reflection vector, and should print out that vector.

4. In either case, your main program should then ask the user if they wish to continue. If they do, the program should allow the user to continue this process as many times as they wish.

Here is some example input and output.

Input the original direction vx vy vz: 0 -1 0

Input the surface outward normal nx ny nz: 1 1 0

Reflection vector: 1 -2.22045e-16 0

Continue (y/n)? y

Input the original direction vx vy vz: 1.5 2.5 3.5

Input the surface outward normal nx ny nz: 1 1 1

No reflection

Continue (y/n)? y

Input the original direction vx vy vz: 1.5 2.5 3.5

Input the surface outward normal nx ny nz: -1 -1 1

Reflection vector: 1.16667 2.16667 3.83333

Computer Engineering, Engineering

  • Category:- Computer Engineering
  • Reference No.:- M93130805

Have any Question?


Related Questions in Computer Engineering

Patient patientid familyname givenname address suburb state

PATIENT (PatientID, FamilyName, GivenName, Address, Suburb, State, PostCode) DOCTOR (ProviderNo, Name) ITEM (ItemNo, Description, Fee) ACCOUNT (AccountNo, ProviderNo, PatientID, TreatmentDate) ACCOUNTLINE (AccountNo, Ite ...

A marketing research firm was hired to estimate the mean

A Marketing Research firm was hired to estimate the mean prime-lending rate for banks located in the western region of the United States. A random sample of n = 50 banks was selected from within the region, and the prime ...

A population has a mean72 and a standard deviation sigma28

A population has a mean=72 and a standard deviation σ=28. Find the mean and standard deviation of a sampling distribution of sample means with sample size n=49.

Question what is static and dynamic binding explain with

Question : What is static and dynamic binding? Explain with example how you can implement dynamic binding. The response must be typed, single spaced, must be in times new roman font (size 12) and must follow the APA form ...

Information systemsdirections answer the following if you

Information Systems Directions : Answer the following: If you were asked to develop a logical model of the registration system at a school, would it be better to use a top-down or bottom-up approach? Explain your reasoni ...

Draw supply and demand curve to illustrate the following

Draw supply and demand curve to illustrate the following sequences of events. Show changes in one graph. Assume upward sloping for supply curves and downward sloping for demand curves 1. In year 1, the rental apartment m ...

With respect to the needham-schroeder 0v0ap authentication

With respect to the Needham-Schroeder (0V0AP) authentication protocol, assume that a client (point A in the 0V0AP description) is holding the wrong key Describe in PRECISE terms (in terms of the contents of the packets t ...

Question 1 assume that you are the project manager for an

Question: 1) Assume that you are the project manager for an upcoming new information systems project designed to replace your organization's old inventory management system. The server and database will also be upgraded. ...

Question what is stp what is rstp and what methods does

Question : What is STP, what is RSTP, and what methods does Cisco provide to make these two methods work better as networks grow? The response must be typed, single spaced, must be in times new roman font (size 12) and m ...

Consider the following reactionpcl 5 g -----gt pcl 3 g cl2

Consider the following reaction PCl 5 (g) -----> PCl 3 (g) + Cl2 (g) Kc = .0420 The concentrations of the products at equilibrium are [PCl3] = 0.120 M and [Cl2] = 0.160 M. What is the concentration of the reactant, PCl5, ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As