What is the direction of reflection

Assignment Help Computer Engineering
Reference no: EM132143340

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

Reference no: EM132143340

Questions Cloud

Discuss variables you chose and explain why you chose them : Applied Statistics - Regression Assignment, Reykjavík University, Iceland. Discuss the variables you chose and explain why you chose them
Write a query to find all small items that are part of other : Suppose a Prolog database exists that gives information about the parts in an automobile engine. Predicates of big, small, and part-of are included.
Does this require that alice recompute her table of remain : Suppose that during the playing of the coins-in-a-line game that Alice's opponent, Bob, makes a choice that is suboptimal for him.
Describe which keys should be used to encrypt the message : Now Bob wants to send a message m to Alice. Describe which keys should be used to encrypt the message and decrypt the ciphertext.
What is the direction of reflection : 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?
Visual samples of the reports you produce : Provide an opportunity for students to present the results of DATA Analysis and to share this knowledge while practicing their verbal communication skills
What happens to the vertex colors when they go from vertex : Suppose you do shading calculations in the vertex shader. What happens to the vertex colors when they go from the vertex shader to the fragmant shader?
Prove that the dfs tree is a spanning tree of g : (a) Prove that the DFS tree is a spanning tree of G. (b) Recall that the DFS algorithm arbitrarily chooses an unvisited neighbor.
Which policies do you feel were most successful : Which policies do you feel were most successful, which were the most damaging? How did these failures lead to revolution?

Reviews

Write a Review

Computer Engineering Questions & Answers

  C++ questions

Define an enum type, bookType, along with the values CSC, MATH, ENGLISH, HISTORY, PHYSICS, and PHILOSOPHY. Declare a variable book of type book Type.

  Describe the impact of access control methods

Describe the impact of access control methods and models in obtaining evidence of sufficient quality to be accepted by a court.

  How could you alter the format of employee IDs

If every employee in an organization had a seven-digit ID number. How could you alter the format of employee IDs to make them more difficult to guess?

  What are the two states of a neuron

What does the knowledge representation used in a neural network try to mimic? What is neuron? What are the two states of a neuron?

  What are the advantages and disadvantages of each mechanism

Assume that a system has both main-memory and disk caches. Discuss how write-through and write-back mechanisms work on this machine.

  The purposes of backup and recovery and business continuity

What steps would you take to "stratify and prioritize" information for the purposes of backup and recovery, and business continuity?

  How encryption keys are derived

Briefly explain how Android 3.0 and later versions encrypt file and user data, and how encryption keys are derived.

  Write a program to do simple analysis on the scores

Write a program to do simple analysis on the scores on the final exam, she will allow you not to take it. You, of course, cheerfully agree.

  Can you reduce the stalls for this code

Re-arrange the loop without unrolling. You can move individual instructions, however the output of this dummy loop should be exactly the same.

  Write the definition for a class named gas pump to be used

Write the definition for a class named Gas Pump to be used to model a pump at an automobile service station. A display of the amount dispensed.

  Describe quality management at the performer level

Evaluate and summarize overall quality management at the organization level. Evaluate and summarize quality management at the process level. Evaluate and describe quality management at the performer level.

  What are the two most significant families of operating

question 1 what is a dac? how much do they cost? who cares?question 2 what are the two most important families of

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd