Rendering Implicit Plots. What is an Implicit Plot? An implicit plot is a plot of all the points satisfying equation:  f(x,y) = 0 (for some function.

Slides:



Advertisements
Similar presentations
Section 18.2 Computing Line Integrals over Parameterized Curves
Advertisements

Roots: Bracketing Methods
EARS1160 – Numerical Methods notes by G. Houseman
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
1Notes. 2 Triangle intersection  Many, many ways to do this  Most robust (and one of the fastest) is to do it based on determinants  For vectors a,b,c.
Ch 2.2: Separable Equations In this section we examine a subclass of linear and nonlinear first order equations. Consider the first order equation We can.
Chapter 4: Straight Line Drawing Ronald Kieft. Contents Introduction Algorithm 1: Shift Method Algorithm 2: Realizer Method Other parts of chapter 4 Questions?
Pythagorean Triples In addition to level 3.0 and beyond what was taught in class, the student may:  Make connection with other concepts in math.
SOLVING LINEAR EQUATIONS. Example 1 Solve take 3 from both sides divide both sides by 2.
Altitudes Recall that an altitude is a segment drawn from a vertex that is perpendicular to the opposite of a triangle. Every triangle has three altitudes.
9.1 Square Roots and the Pythagorean Theorem
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
Linearization , Related Rates, and Optimization
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Benchmark 40 I can find the missing side of a right triangle using the Pythagorean Theorem.
22 July 2008 John Hart Toroid Field Parameterisation 1 Toroid Field Parameterisation An informal report to the RAL ATLAS meeting John Hart 22 July 2008.
Part 6: Graphics Output Primitives (4) 1.  Another useful construct,besides points, straight line segments, and curves for describing components of a.
Geometry Images Xiang Gu Harvard University Steven J. Gortler Harvard university Hugues Hoppe Microsoft Research Some slides taken from Hugues Hoppe.
Chapter 7.4.  The altitude is the Geometric Mean of the Segments of the Hypotenuse.
Systems of Inequalities in Two Variables Sec. 7.5a.
Analytic Geometry Group Members Include: Taylor, Suzanne, Analynn and Kerry.
Math 3120 Differential Equations with Boundary Value Problems Chapter 2: First-Order Differential Equations Section 2-2: Separable Variables.
Part 2 Chapter 5 Roots: Bracketing Methods PowerPoints organized by Dr. Michael R. Gustafson II, Duke University All images copyright © The McGraw-Hill.
Geometric Mean and the Pythagorean Theorem
9-1 Quadratic Equations and Functions Solutions of the equation y = x 2 are shown in the graph. Notice that the graph is not linear. The equation y = x.
MATHEMATICAL PROCESSES SPI  I can generate ratios to solve problems involving velocity, density, pressure, and population density.
Numerical Methods for Engineering MECN 3500
Parametric Surfaces Define points on the surface in terms of two parameters Simplest case: bilinear interpolation s t s x(s,t)x(s,t) P 0,0 P 1,0 P 1,1.
1. 2. * Often times we are not able to a quadratic equation in order to solve it. When this is the case, we have two other methods: completing the square.
Vertices, Edges and Faces By Jordan Diamond. Vertices In geometry, a vertices is a special kind of point which describes the corners or intersections.
5.3 Function Rules, Tables, & Graphs. List some pairs of numbers that will satisfy the equation x + y = 4. x = 1 and y = 3 x = 2 and y = 2 x = 4 and y.
1 Subdivision. 2 Subdivision for game Why? Large model require many memory for storage Need to dynamically tessellated during game play Make surface modeling.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
Chapter 7 Day 3 Book Section 7.5 Get 2 grids for the 2 shift problems!
Pythagorean Theorem - Thurs, Oct 7
Robust Watermarking of 3D Mesh Models. Introduction in this paper, it proposes an algorithm that extracts 2D image from the 3D model and embed watermark.
5.1 Special Segments in Triangles Learn about Perpendicular Bisector Learn about Medians Learn about Altitude Learn about Angle Bisector.
MID-SEGMENT & TRIANGLE PROPORTIONALITY Day 8.  A midsegment of a triangle is a segment that connects the midpoints of two sides of a triangle. In the.
Bellwork Use the distributive property to find each product. 1. (x+2)(x -5) 2. (-3x+2)(2x-6) Identify whether each function is quadratic. 3. f(x) = 4x³.
Geometric Mean 7.1.
Do Now Solve each equation. x = x = 180 x + 32 = 180 x = 90
Solving Systems of Linear Equations and Inequalities by Graphing
Daniil Rodin for CAGD course, 2016
8.6 Vector and Parametric equations
6-2 Solving Systems By Using Substitution
Chapter 9 Right Triangles and Trigonometry
Chapter 9 Right Triangles and Trigonometry
Craig Schroeder October 26, 2004
Least Squares Approximations
Equations as Relations
Objective: Be able to approximate the area under a curve.
Objectives The student will be able to:
9.3 Warmup Find the value of x and y
Objective: Be able to approximate the area under a curve.
8.1.1 Solving Simple Equations
Discrete Least Squares Approximation
Roots: Bracketing Methods
Objective The student will be able to:
Objectives The student will be able to:
Perform marching cubes over a sparse dual grid
Objective The student will be able to:
Objective The student will be able to:
Objective The student will be able to:
Objective The student will be able to:
Geometric Mean and the Pythagorean Theorem
Graphing Quadratic Equations
Completing the Square for Conic Sections
L5-7 Objective: Students will be able to solve quadratics by using the quadratic formula.
Roots: Bracketing Methods
9.4 Absolute Value Functions and Graphs
Presentation transcript:

Rendering Implicit Plots

What is an Implicit Plot? An implicit plot is a plot of all the points satisfying equation:  f(x,y) = 0 (for some function f) The points plotted are connected by lines to form one or more curves.

Rendering an Implicit Plot Standard Approach Start with a grid of evenly spaced points and evaluate the function at each point on the grid.

Rendering an Implicit Plot Standard Approach Look at each square in the grid. If f has a different sign for two adjacent corners then somewhere in between it was 0. Linear Approximation can be used to estimate the point on the line where f(x,y) = 0

Linear Approximation Start with the two points (x 0,y 0 ), (x 1,y 1 ) where the sign change in f occurred We know that somewhere on the line between (x 0,y 0 ), (x 1,y 1 ) that the value of f is 0 The parametric equation of a line is defined as follows:  (x,y) = (x 0,y 0 )(1-t)+(x 1,y 1 )t What we do is use this equation to approximate f for values of x and y  f(x,y) = f(x 0,y 0 )(1-t)+f(x 1,y 1 )t Here we are only interested in finding where f(x,y) = 0  0 = f(x 0,y 0 )(1-t)+f(x 1,y 1 )t

Linear Approximation - Continued We are now able to solve 0 = f(x 0,y 0 )(1-t)+f(x 1,y 1 )t for t and plug the result back into (x,y) = (x 0,y 0 )(1-t)+(x 1,y 1 )t This results in the following point:

Problem with the standard approach If the grid isn't fine enough part of the curve might be missed. A simple but inefficient solution would be to just make the grid more finely grained.

Rendering Plots using an Adjustable Mesh The idea behind an adjustable mesh is to start with a reasonable grid and only increase the grid's resolution in areas where it's necessary.

Adjustable Mesh Starting with an initial grid the algorithm looks for areas where the function changes rapidly and increases the resolution in those areas.

Adjustable Mesh - Data Structure The data structure for the adjustable mesh is made up of two main components.  Edges 2 points that define the line segment References to the two faces holding the edge  Faces Composed of 3 edges:  Two edges sharing a common vertex  A hypotenuse that shares a vertex with each of the edges.

Determining how much the function changes Given three points and the value of the function at each point we can create 2 3D vectors and look at the angle between the vectors.

Adjustable Mesh To avoid tears in the plot sides shared by two regions must be the same.

Adjustable Mesh By adding a point in the middle of a square and dividing the square into 4 triangles. It is possible to increase the resolution without affecting adjacent squares.

Adjustable Mesh The grid can be further subdivided by adding the midpoint of the newly created square.

Existing Implementations This type of algorithm has been implemented in both:  Mathematica  Maple

Our Implementations We developed two implementations of the adjustable mesh algorithm. One in Java and the other in Sage.

Adjustable Mesh - Actual Performance

cos(x+y) - (xy) 2

Comparing Performance cos(x+y) - (xy) 2 X-Range: (-3,3) Y-Range: (-3,3)  Adjustable Mesh: 5.23 seconds  Standard Algorithm: 2.08 seconds X-Range: (-10,10) Y-Range: (-10,10)  Adjustable Mesh: 8.78 seconds  Standard Algorithm: seconds