New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here


by: Mrs. Maximo Lueilwitz


Marketplace > Oregon State University > ComputerScienence > CS 419 > SELECTED TOPICS IN COMPUTER SCIENCE
Mrs. Maximo Lueilwitz
GPA 3.95

M. Bailey

Almost Ready


These notes were just uploaded, and will be ready to view shortly.

Purchase these notes here, or revisit this page.

Either way, we'll remind you when they're ready :)

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

M. Bailey
Class Notes
25 ?




Popular in Course

Popular in ComputerScienence

This 52 page Class Notes was uploaded by Mrs. Maximo Lueilwitz on Monday October 19, 2015. The Class Notes belongs to CS 419 at Oregon State University taught by M. Bailey in Fall. Since its upload, it has received 26 views. For similar materials see /class/224498/cs-419-oregon-state-university in ComputerScienence at Oregon State University.

Similar to CS 419 at OSU

Popular in ComputerScienence




Report this Material


What is Karma?


Karma is the currency of StudySoup.

You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!

Date Created: 10/19/15
F a Mike Bailey Oregon State University Orzgml 5m 39 Cnmplllel Grapl 39 Forward Kinematics Transformation Hierarchies mibrSeptembeMZ 2mm inirn 5m rump1i Transformation Hierarchies FonNard Kinematics Ground mibrSEptembeyiz 2mm Positioning Part 1 With Respect to Ground 1 Rotate by 61 2 Translate by AUG Write it MlG TlG Sayi r Oregon sme Uni lfils y compmererapmcs mm Septembeyiz 2mm Positioning Pait 2 With Respect to Ground 1 Rotate by 92 2 Translate the length of palt 1 3 Rotate by 61 4 Translate by A1 K Write it Mm TlG R911 Tm R921 MlG M21 Say it mibrSEpiembeyiz 2mm Positioning Part 3 With Respect to Ground 1 Rotate by 93 2 Translate the length of part 2 3 Rotate by 92 4 Translate the length of part 1 5 Rotate by 81 6 Translate by A1 K WriTeiT Mae T1GJquot Rel 3913921 Rm Ta2 Res Mus M21 Ma2 Oregon tmeunwrsnsily Say IT Conii ll el el iphics mibrSEptEmbEMZ 2DE7 Sample Program Ground mmrsemembemz 2mm Sample Program my LENGTH1 BUTT THICKNESS DrawLinkOne ngegin GLQUADS glVertefo BUTT THICKNESS2 glVertefo LENGTH1 glVertefo LENGTH1 glVertex2f BUTT THICKNESS2 glEndlt Oregon 5 e Unwzts y cempmererapmcs mm Sep embemz 2mm Sample Program DrawMechanism float 61 float 92 float es glPushMatrix glRotatef 01 0 0 l glColor3f l 0 0 DrawLinkOne ngranslatef LENGTHl 0 0 glRotatef 92 0 0 l glColor3f 0 l 0 DrawLinkTwo ngranslatef LENGTH2 0 0 l DrawLinkThree glPopMatrix mibrseplembevlz 2mm Sample Program Where in The 0 glViewport 100 100 500 500 window display pixels glMatrixMode GL PROJECTION 39 glLoadIdentity Viewing Info gluPerspective 90 l 0 l 10 field of View angle Xy aspec r ra rio near far glMatrixMode GLMODELVIEW glLoadIdentity done FALSE while done gt Whalevel ltlt Determine e1 92 es gtgt in rer ac rlon IS glPuShMatrixo being used To ge r gluLookAu eyex eyey eyez The eye posi rion centerx centery centerz upx upy upz SeT The DrawMechanism 91 92 e3 eye posi rion glPopMatrix Oregon eUnl lzlSl39y comm 39G aphics mlbiseplembeyll l m Mike Bailey Oregon State University a Orzgml Sta Cumlnlle Inverse Kinematics FonNard Kinematics solves the problem if I know the link transformation parameters where are the links lnverse Kinematics lK solves the problem lfl know where I want the parts to be what part transformation parameters will put them therequot XY mm rum mlbrseplembevlz 2mm Inverse Kinematics Note that you can differentiate the equations x f61 92 93 and Y 991 92 93 If you have a good guess for 61 62 63 which currently produce an X and Y that are not quite what you want then you can refine your values for 61 02 O3 and try again The fundamental equations for this are X 7Xme AX aimal A62 fimag 661 662 663 f 7Y1 AY aim BY A62 BLA63 PF 661 662 663 mlbrseplembeylz 2mm 0ch I Computer c phi5 lnverse Kinematics Or in matrix form The matrix 6X 6X 6X 661 662 663 6f 6f 6f 661 662 663 A01 AX is called the Jacobian and is abbreviated as J J A02 AY A03 mm Septembeylz 2mm Inverse Kinematics Note that J is not a square matrix so this system of equations cannot be solved for directly But if we premultiply by the transpose of J we get A01 M T T J J A62 J M A63 3X2 2X3 3X1 3X2 2X1 3X3 3X1 3X1 which is solvable 0ch I Computer c phi5 mlbrseplembeylz 2mm lnverse Kinematics A91 AX A9 T 1 T 2 J J J M A93 3 X 1 3 X 3 3 X 2 2 X 1 It is not obvious but this is the Least Squares formulation It will give an optimum A61 AOTAOS to make XY move closer to the desired values mm samemnemz 2mm Inverse Kinematics Differentiate the equation f61 62 63 and g61 62 63 Pick a starting 61 62 and 63 1 Compute X and Y from 61 62 63 approx approx 2 Compute AXXX and AYYY approx approx 3 If AX and AY are small enough we re done 6X 6X 6X 61Kquot 61Kquot 61Kquot 4 Compute 661 662 663 661 662 663 039 Form the Jacobian J A81 6 Solve the system of equations JTJ A9 JT AX 2 AY A83 I q Refine 61 61 A61 62 62 A62 63 63 A63 Ofega I Cmnputer c ohms mlbrSeptembeMZ 2mm Numerical Differentiation Rather then explicitly differentiating an equation it soften easier to calculate the derivative numerically This is known as the Central Difference method Where you look both forward and backwards to see how the dependent variable is changing with respect to the independent variable 61 N X09 A6 X6 A6 66 2A6 Pick a delta that is small but not so small that floating point accuracy becomes an issue mm Septembev122 7 Numerical Differentiation If there are other independent variables hold them constant aiN X 1A919293 X91 A919293 681 2A9 1 mlbrSEptembeylZ 2mm Numerical Differentiation In case you ever need it here is how to compute the second derivative 62X X6 A6 2X6 X6 A6 662 A62 As before if there are other independent variables hold them constant mm Septembeylz 2mm CUDA Compute Unified Device Architecture Mike Bailey Oregon State University GFLOPS Oregull Sla2l iy History of GPU Performance vs CPU Performance Source NViDiA CumIns Gmullim mibrNuenhevz mm Why are GPUs Outpacing CPUs Due to the nature of graphics computations GPU chips are customized to handle streaming data This means that the data is already sequential or cachecoherent and thus the GPU chips do not need the significant amount of cache space that dominates CPU chips The GPU die real estate can then be retargeted to produce more processing power For example while Intel and AMD are now shipping CPU chips with 4 cores NVIDIA is shipping GPU chips with 128 Overall in four years GPUs have achieved a 175fold increase in performance a compound annual increase of 205X which exceeds Moore39s Law mlbrNuvemberz 2mm What is Cache Memory In computer science a cache is a collection of data duplicating original values stored elsewhere or computed earlier where the original data is expensive to fetch due to longer access time or to compute compared to the cost of reading the cache In other words a cache is a temporary storage area where frequently accessed data can be stored for rapid access Once the data is stored in the cache future use can be made by accessing the cached copy rather than re fetching or recomputing the original data so that the average access time is shorter Cache therefore helps expedite data access that the CPU would otherwise need to fetch from main memory Wikipedia mlhiNuvemberl 2mm How Can You Gain Access to that GPU Power l 7 iL 1 Write a graphics display program 2 1985 2 Write an application that looks like a graphics display program 2 2002 3 Write in CUDA which looks like C 2 2006 Oregon State University Computer Grapi39iics mjb November 26 2007 CUDA Architecture The GPU has some number of MultiProcessors MPs depending on the model The NVIDIA 8800 comes in 2 models either 12 or 16 MPs The NVIDIA 8600 has 4 MPs Each MP has 8 independent processOrs There are 16 KB of Shared Memory per MP arranged in 16 banks There are 64 KB of Constant MemOry Oregon State University Computer Graphics mjb November 26 2007 The CUDA Paradigm CUDA is an NVIDIA only product but it is likely that eventually all graphics cards will have something similar If GPUs have so Little Cache how can they Execute General C Code Efficiently 1 Multiple Multiprocessors 2 Threads lots and lots of threads CUDA expects you to notjust have a few threads but to have thousands of them All threads execute the same code called the kernel but operates on different data Each thread can determine Which one it is Think of all the threads as living in a pool waiting to be executed All processors start by grabbing a thread from the pool When a thread gets blocked somehow a memory access waiting for information from another thread etc the processor quickly returns the thread to the pool and grabs another one to work on This threadswap happens within a single cycle w S 5m quot5 i39 A full memory access requires 200 instruction cycles to complete l 1 2 lSll The CPU program then initiates drawing ofthe information in those arrays Note once setup the data never leaves GPU memory Oregon State University So the Trick is to Break your Problem into Many Many Small Pieces Particle Systems are a great example Have one thread per each particle Put all of the initial parameters into an array in GPU memory Tell each thread what the current Time is Each thread then computes its particle s position color etc and writes it into arrays in GPU memory Ben Weiss CS 51 Computer Grapi39iics ISIJ Organization Threads are Arranged in Blocks A Thread Block has Size 1 to 512 concurrent threads Shape 1D 2D or 3D reallyjust a convenience Threads have Thread ID numbers within the Block The program uses these Thread IDs to select work and pull data from memory Threads share data and synchronize while doing their share of the work A Thread Block is a batch ofthreads that can cooperate with each other by Synchronizing their execution Efficiently sharing data through a low latency shared memory Two threads from two different blocks cannot cooperate Oregon State University Computer Graphics mjb November 26 2007 Organization Blocks are Arranged in Grids A CUDA program is organized as a Grid of Thread Blocks n sme University compute Graphics Threads Can Access Various Types of Storage Each thread has access to RNV perthread registers RNV perthread local memory RNV perblock shared memory RNV pergrid global memory Readonly pergrid constant memory Readonly pergrid texture memory The CPU can read and write global constant and texture emories Oregon sme University computerenphlcs mineremnerze mm Rules You can have at most 512 Threads per Block Threads can share memory with the other Threads in the same Block Threads can synchronize with other Threads in the same Block Global Constant and Texture memory is accessible by all Threads in all Blocks Each Thread has registers and local memory Each Block can use at most 8192 registers divided equally among all Threads You can be executing up to 8 Blocks and 768 Threads simultaneously per MP A Block is run on only one MP ie cannot switch to another MP A Block can be run on any of the 8 processors of its MP mlbrNuyembevm 2mm Types of CUDA Functions Executed Only callable on the from the device float DeviceFunc GPU GPU globa1 void KernelFunc GPU CPU host float HostFunc CPU CPU globa1 defines a kernel function it must return void mlhiNuyemberl 2mm Different Types of CUDA Memory Memory Location Cached Access Who Local Off chip No Readwrite One thread Shared Onchip NA Readwrite All threads in a resident block Global Offchip No Readwrite All threads CPU Constant Offchip Yes Read All threads CPU Texture Offchip Yes Read All threads CPU mlbrNuvembevm 2mm Types of CUDA Variables device float filter N Declarations global device shared local constant global void convolve float image shared float region M Keywords threadldx blockldx regionthreadIdx imagei lntrInSIcs syncthreads 0 syncthreads Runtime API imagele result Memory symbol execution management Allocate spu memory void myimage cudaMallocbytes CUDAfunction launch 100 blocks 10 threads per block convolveltltlt100 10gtgtgt myimage mlhiNuvembeil 2mm A CUDA Thread can Query Where it Fits in its Community dim3 blockDim Dimensions of the block in threads dim3 threadIdx Thread index within the block dim3 gridDim Dimensions of the grid in blocks gridDim z is not used dim3 blockIdx Block index within the grid Diegoquot State unwersm Computer Graphics mlberembeyz 2mm The CPU lnvokes the CUDA Kernel using a Special Syntax CUDAFunctionltltlt NumBlocks NumThreadsPerBlock gtgtgt arg1 argZ CPU Serial Code Grid 0 GPU Parallel Kernel KerneAltltlt nBIk nTid gtgtgtargs CPU Serial Code GPU Parallel Kernel KerneBltltlt nBIk nTid gtgtgtargs Oregon sme Univelsity compmc rempmcs NihiNuvembeiz mm 08quot Rules of Thumb OpenGL Buffer Objects can be mapped into CUDA space CUDA kernel is asynchronous Can call cudaThreadSynchronize from the application At least 16124 Blocks must be run to fill the device The number of Blocks should be at least twice the number of MPs The number of Threads per Block should be a multiple of 64 192 or 256 are good numbers ofThreads per Block Oregon State University Computer Graphics mjb November 20 2007 llSll An Example Recomputing Particle Positions Oregon State University Compurer Graphics mjb November 20 2007 10 An Example Static Image Denoising Oregun State University Computer Graphics An Example Dynamic Scene Blurring 0 Oregon State University COmPu er Graphics mjb November 26 2007 11 ISll Oregon St Computer Graphics An Example Realtime Fluids 512x512 pixels 3976 FPS 12 Mike Bailey Oregon State University a Orzgnn Sta Cnmlnlln Vectors have Direction and Magnitude Vx Vy V1 mJllJK2WK2 mibroctubevz mm A Vector Can Also Be Defined as the Positional Difference Between Two Points ex Qy 0 Vx Vy V1 Vx 3Vy3IzQx Px3Qy Py3Qz Pz megaquot State University Computer Graphics minionubeyz 2mm Unit Vectors have a Magnitude 10 Vx Vy V1 V JV Vf sz p21 Oregon sme Univelsity Computer Graphics mibioctubeil mm Dot Product A a B AxBx AyBy 14sz 2 ABc056 Because it produces a scalar r esul r Le a single number This is also called The Scaar39Pr39adLcr 0ch I Computer c phi5 mlbroctubeil 2am A Physical Interpretation of the Dot Product m A of 0056 How much of A lives in the direction min roctubeiz 2am Dot Products are Commutative AoBzBoA Dot Products are Distributive AOBCAOBAOC mlbrOctubeil 2mm Cross Product A X B 1sz AZByAZBx AxBZAxBy AyBx AgtltB A lBllsin6 Because iT produces a vecTor resulT ie Three numbers This is also called The lecrar39 Producr min roctubevz 2mm A Physical Interpretation of the Cross Product AXE Allsin 9 A B How much of A lives perpendicular to the B direction mlbrOclubEi 2 2mm The Perpendicular Property of the Cross Product is both perpendicular to A and The veCtor A X B perpendicularto B AxB The RightHandRule Property of the Cross Product A B Curl the fingers of your right hand in the direction that starts at A and heads towards B Your thumb points in the direction of AxB Olmmv Slam LI Cumulus Gm mlbrOclubEi 2 2mm Cross Products are Not Commutative Asz BXA Cross Products are Distributive AXBCDAXBQ4XC raverst mcs mlbroclubeili 2mm mega u Computerc n A Use for the Cross Product Find a Vector Perpendicular to a Plane the Surface Normal quotRQXSQ Oregon sme Unl lzlsl39y compmel39eraphics mlb roctubevz 2mm A Use forthe Cross and Dot Products Is a Point inside a Triangle S Let nRQXSQ HQ RQgtltPQ nR S RgtltP R quotiQSgtltPS R If n onqn onrandn onx mh are all positive then P is inside the triangle QRS Cmnputrs mes mlbioctubeil 2mm A Use for the Cross Product Area of a Triangle S Area Base Height Base 2 Height QSsin9 O R 1 1 Area s1n t9 E R Q X S Q c m 39 s Derivation of the Law of Cosines sR Q s2 llRQIIZ 52 R Q R Q 52 R SS Q R SS Q 52 R SR SS QS Q 2R S S Q s2 q2 r2 2qrcosS mibrOctubEil 2mm Derivation of the Law of Sines 2 AreaAQRS S Q x R Q rs sin Q But the area is the same regardless of which two sides we use to compute it so rssin Q qssinR qrsinS Dividing by qrs gives sinQ sinR sinS min roctubevz 2mm Distance from a Point to a Plane The equation of the plane is xayazP0xP0ya 02nx ny nz 0 which expands out to become the more familiar Ax By CZ D 0 The distance from the point P to the plane is based on this d P P0 o r The dot product is answering the question How much of PPU is in the normal direction Note that this gives a signed distance If d gt 0 then wP is on the same side of the plane as the normal mlDrOEluberl 2mm Distance from a 3D Line to a 3D Line The equation of the lines are P P0 tvp Q Q0 I39Vq A vector between them that is perpendicular to both is Vl V X Vq We need to answer the question How much of QBPO is in the v direction To do this we once again use the dot product dP0 Q0 J Oregon sme Unlvelslty Compmerc rzphics minrouunm mm A Use for Dot Products Force One Vector to be Perpendicular to Another Vector The strategy is To get rid of The parallel J component leaving just The perpendicular A214 AL AizA A But A Aolg g I Sothat A39AL A AOEZ BhThis is known as GramSchmidt orthogonalization 0 mos mlbroclubevz 2mm The Ethics of Visualization Values The principles or standards or habits with respect to right or wrong in conduct Morals The social principles goals or standards held or accepted by an individual class society etc Ethics The principles of conduct governing an individual or a profession The standards of social or professional behavior Webster s New World College Dictionary 43911 edition Topdown Types of Ethics Kantian 0 Always treat persons as endsinthemselves and never merely as means to your ends 0 The right moral rules are those which people would freely choose to have govern them 0 A maxim is universalizable if and only if you could effectively achieve your goal by acting on it in a world where everyone else was pursuing the same goal by acting similarly in similar circumstances Utilitarian o The purpose of morality is to make the world a better place 0 Morality is about producing good consequences not having good intentions 0 We should do whatever will bring the most benefit to all of humanity Intuitionism 0 You just know what is right and what is wrong 0 The Golden Rule 0 httpwwwcommitteeforthegoldenruleorg mjb November 6 2006 1 Versions of The Golden Rule in Different Religions BUDDHIST Hurt not others in ways that you would nd hurtful CHRISTIAN All things whatsoever ye would that men should do to you do ye even so to them CONFUCIAN Do not unto others what you would not have them do unto you HINDU This is the sum of duty do naught unto others which if done to thee would cause thee pain ISLAMIC No one of you is a believer until he desires for his brother that which he desires for himself JAIN In happiness and suffering in joy and grief we should regard all creatures as we regard our own self JEWISH Whatever thou hatest thyself that do not to another SIKH As thou deemest thyself so deem others TAOIST Regard your neighbor s gain as your own gain and your neighbor s loss as your own loss ZOROASTRIAN That nature alone is good which refrains from doing unto another whatsoever is not good for itself mjb November 6 2006 2 BottomUp Ethics Case Study 0 Create rows of traits Put really bad behavior on one side 0 0 Put really good behavior on the other side 0 Take a situation and mark where it falls in each row Visualiz ation BAD GOOD mjb November 6 2006 3 Mike Bailey Oregon State University a Orzgnn Sta Cnmpllle The Line Equation Why ymxb Isn39t Good Enough for Graphics Applications Software P1 P0 1 Cannot represent vertical lines m 2 Can only represent in nite lines not nite line segments 3 Can only represent 2D lines not 3D mlbrseplembev 2mm Parametric Line Equation t7P1 P0 szotX1Xo y Yo K Yo ZZ0tZ1 Z0 ml 0931 nnnnnnnnnnnnnnnnnn n7 P0 Can Also Be Thought of As a Blending Function 77131 x1 tX0 ZX1 y1tYotY1 z1 l Z0 l Z1 Gregor 5mg Unl lzlsi compmererapmcs 39V 0St 1 iiiiiiiiiiiiiiiiii n7 Example Use Intersection of two 2D Line Segments P2 P1 x01 2 x23 Wym y23 P3 P0 x01X0 tX1 X0 x23 X2 uX3 X2 yo1Yo tYl Yo y23 Yz uY3 Y2 Since at the point ofintersection x01 2 x23 and y01 y23 we have 2 equations in 2 unknowns t and u Solve for t and u If they are not each between 0 and 1 then the infinite lines intersect but not the finite line segments Plug t and u back into the equations above to find xy the point of intersection mega Unwersm Computerc mes mibrSEptembev 2mm What iftoru islt0 orgt1 f P2 P3 P1 It means you have a situation like one of these The infinite lines intersect but not the finite line segments Oregon sme Uni lzlsi39y compmel39eraphics min Septembei 2mm What if the lines are Parallel P0 I P2 P3 1 Well they do intersect but at infinity This shows up in the math by the expression for t and u becoming infinitely large that is there would be a divide by zero So you need to check the denominator before doing the division Since t and u would both be infinity in this case which is most certainly gt 1 that means that the line segments do not intersect mega Unwersm CamputercI39zp nlcs mlbrSEplembei 2mm Linear Blending Shows Up in a Lot of Computer Graphics Applications You can linearly blend any two quantities with Q1fQofQ1 color shape location angle scale factors quot Gregor awe Unl lzlsl39y compmererapmcs mm Septembey 2mm The Compute Module Does arithmetic on the point by point Data component of a field and outputs the modified field The 3 in this case inputs The output expression in this case a 3vector with a newlycreated 2 value Oregon State University ml 7 Nuvembev 132mm The Compute Module Does arithmetic on the point by point Data component of a field and outputs the modified field But what if you want to do arithmetic on a different component The Mark module renames the Data component to something temporary and renames a component you selctK quotDataquot amour then acts on this component The Innark module changes the component names back to what they were originally mm mm Imus Mame Nllle Tyne sown Impuz J eld mm Jname A sum Untpms lunm rypu Dusllummn K m nulpul mm armynu N mus usquot Or ox M2114 EgtEp nd wraps nesuipu39m J Helpnnsynlax r m I Huurw Wu H u gm slang mm alumnaquot 9 Animation n n The Sequencer Module Forward Forward Forward Reverse s39quot9le395teP Loop 0 mode Fra e Control in euuence C Sequencer Reverse Forward Stop Paus be Frame Lunlml v I 4 1 y Inn Max Mm Increment Oregon State University mlbrNuvembEMS lune v SEW outputs a series of integers You set The minimum and maximum using 5 39 39 The Sequencer Module Usually Used with the Compute Module 39 39 n arame er urn the Integer into an Anlm In fhis case Compute turns an integer info a scala to be ed to animafe an isovalue mlbrNuvembeMS Inna am y Mr M 4 quot The Sequencer Module Percent Units Strategyquot A 9nd Sequencer Shhquot 12 en sequence fnm 1100 or 0100 Then 55 m awn quantity on use Per no Um Oregon State Unlverslo mm Navembev 3 mus Oregon State Unlverslo equencer Module Setting a Scalar lsovalue a mm t up vIm BIJI u 3 ax him I M a nagLg Hymn 5 a a scalar 9 he s can mph him an V In 1 and h an ah the Inc myberembev mus The Sequancer Isosurluce F Oregon State University equencer Module Setting a Scalar lsovalue Map FnPlIne Oregon tate The Sequencer Module Setting a Vector to act as a Plane Location i ifquot m n w mm 7 MalawiH mammammal 4m vim m an mu qqi Hm mum In this case CamiJute turns an integer into a 3 element or to be used to animate the position of the cutting plane University mlbrNuvembeiil ZDDB The Sequencer Module Setting a Vector to act as a Plane Location MapToFlane Oregon ate University The Sequencer Module Setting a Transformation Nulauuli Illlmls In this case Caliyzufe turns an integer into a rotation angle in degrees Oregon State University mlbr Nuvembei 13 mug Why Does the Rotation Occur around the Edge of the Cube not about its Center Scaling amvy mm39 a Rotation and boy 1 or39gil To to Oh cuntquot of Oh volumc 39M39ISII39I NI emug quotr volumc v m orlgln parform m mania or sock and mu trayslut 39 bud Translate by 151515 Rotate Translate by 151515 Oregon State University mihiNavmhevH ZDm x mm bummmmim m u W Writing Out a MIFF Animation File Oregon State University mihiNavmhevH ZDm Mike Bailey Oregon State University a Orzgml Sta Compute Collisions Definitions Line of Impact If the objects velocities are parallel to the Line of Impact this is a Directlmpact Otherwise it is called an Oblique Impact um DireCt Impact Oblique Impact rumpH61 nunum m bisgmwbwz mm Collisions Fundamental Quantities The momentum of an object is defined as its mass multiplied by its velocity Momentum mv The energy of an object is defined as one half of its mass multiplied by its velocity squared 1 2 Energy zimv mlbrSEplemberlz 2mm Collisions Conservation of Momentum In a collision the total momentum after the impact is equal to the total momentum before the impact r r mava meb mava meb where the primes 39 refer to velocities after the impact This is referred to as the Consentaffair ofMomem um Law mm samemnemz 2mm Collisions Coefficient of Restitution In a collision energy is conserved in the entire system but not necessarily in the form of velocities It can become permanent deformation heat light etc This loss ofvelocity is expressed as the Coef cient of Restitution COR The COR e is how much less the relative velocities of the objects are after impact than they were before impact I I Vb va TeVb va the negative sign is there to indicate the bounce mlbrSEplembeylz 2mm Collisions Combining Momentum and Restitution Laws Starting with these two equations r r mava meb mava meb 7 i Vb TV 60 TVa a Treat the two initial velocities as inputs and solve forthe two resulting velocities This gives 7 mava mbvb em Vb T Va mg mb 7 mava mbvb T emavb T Va mamb mm Septembeylz 2mm Collisions with lmmoveable Objects To treat the case of mass b being an immoveable object such as the ground or a solid wall solve for the resulting velocities taking the limit Jig mava mbvb emb vb va lim v mww mamb m V mv em V V hm a a 17 17 17 17 a mww mamb mamb mamb 0vbevb va Since mass b is immoveable its velocity is zero so that as postcollision velocity is mlbrseplemberlz 2mm Collisions Experimentally Determining the Coefficient of Restitution Velocities are hard to measure live but distances are not 80 drop the object from a height h and measure its bounce to a height h Before the bounce After the bounce v22022gh 022V3922gh39 vz gh v 2gh mm saplemnemz 2mm Collisions Some Coefficients of Restitution of Balls Bounced on a Concrete Surface Ball Material CoR tennis ball hand ball wooden ball ht 39 I 39 39 facts2N quot quot mlbrSEptemberlZ 2mm Collisions Totally Plastic Collisions mava mbvb embvb va Va mg mb v mava mbvb emavb Va 1 mamb If e0 then the two objects stick together and end up with the same resulting velocity mm Septemberlz 2mm Collisions Totally Elastic Collisions What happens when e1 The two fundamental equations are 7 7 meb mava meb mava v v eVb vava Vb Rearranging 7 7 mava va mbvb vb 7 7 Va Va Vb Vb mlbrSEpiembeylZ 2mm Collisions Elastic Collisions Then multiplying the two together gives 72 2 2 72 mava mava mbvb mbvb Or 1 72 1 72 l 2 l 2 mbvb mava mbvb mava 2 2 2 2 which shows that energy is conserved when the Coefficient of Restitution is 10 mm Septembeylz 2mm Collisions Oblique lm pacts Oblique Impacts are then handled by using vector math to determine the velocity components parallel and perpendicular to the Line of lm pact The parallel components are changed using the equations wejust derived The perpendicular components are left unchanged This assumes no friction The new components are then combined to produce the resulting velocity vectors mlbrsepiembeylz 2mm


Buy Material

Are you sure you want to buy this material for

25 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


You're already Subscribed!

Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'

Why people love StudySoup

Jim McGreen Ohio University

"Knowing I can count on the Elite Notetaker in my class allows me to focus on what the professor is saying instead of just scribbling notes the whole time and falling behind."

Jennifer McGill UCSF Med School

"Selling my MCAT study guides and notes has been a great source of side revenue while I'm in school. Some months I'm making over $500! Plus, it makes me happy knowing that I'm helping future med students with their MCAT."

Bentley McCaw University of Florida

"I was shooting for a perfect 4.0 GPA this semester. Having StudySoup as a study aid was critical to helping me achieve my goal...and I nailed it!"

Parker Thompson 500 Startups

"It's a great way for students to improve their educational experience and it seemed like a product that everybody wants, so all the people participating are winning."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.