Honours Project Report

Size: px
Start display at page:

Download "Honours Project Report"

Transcription

1 1 Honours Project Report Natural Looking Graph Generator Author : Eashan Kumar Singh Supervisor : Dr. David Mould, School of Computer Science, Carleton University Date : 11th December 2015

2 2 Abstract The aim of this project was to create pseudo random graphs that look like something that would exist in nature, like the pattern on insect wings. It achieves this by modelling the random graphs using linear and angular springs on the nodes to make the graph more curvy rather than straight and jagged. This can be used to create randomly generated textures for objects that exist in nature. The main conclusion drawn was that cohesive circular structures looked more natural and graphs with nodes anchored by multiple edges produced the best results. Acknowledgements I d like to thank Dr. David Mould for supervising my honours project and for helping me with my project all the way from the selection of my topic to helping with the problems in the code.

3 3 Table of Contents Abstract 2 Acknowledgements 2 Table of Contents 3 Table of Figures 4 Outline 5 Introduction 6 Problem Statement 6 Motivation 6 Goals 7 Objectives 7 Background 8 Processing 8 Running the Project 8 Report 9 Generating Completely Random Graphs 9 Subdividing Edges 10 Anchoring Nodes 11 Edges That Try To Make Circular Patterns 12 Edges That Try To Make Sine Curves 13 Combining The Two Types Of Curves 14 Adding Variety In Angles And Anchoring Primary Vertices 15 Conclusion 17 Looking Forward 17 Appendix A Graphs generated for the statistics in the conclusion 18

4 4 List of Figures FIGURE 1 Bubbles under ice 6 FIGURE 2 A Completely Random Graph 9 FIGURE 3 Graph with edges subdivided 10 FIGURE 4 Graph with anchored edges 11 FIGURE 5 Graph with circular patterns 12 FIGURE 6 Graph with sine curves 13 FIGURE 7 Graph with sine curves and circular curves 14 FIGURE 8 Graph with variable circular curves and fixed primary vertices 15 FIGURE 9 Graph with variable sine curves and fixed primary vertices 16 FIGURE 10 Natural looking sine curve 1 18 FIGURE 11 Natural looking sine curve 2 19 FIGURE 12 Natural looking sine curve 3 19 FIGURE 13 Natural looking circular curve 1 20 FIGURE 14 Natural looking circular curve 2 20 FIGURE 15 Natural looking circular curve 3 21

5 5 Outline This document will talk about the Natural Looking Graph Generator project. The document will start off with an introduction which will present the problem statement being challenged, the motivation for the production of this project, the goals that need to be achieved and the objectives of the project. The background will give a small introduction to Processing and explain how to run the project. Finally, the report will chronicle all the major advancements in the code, explain the rationale behind each of them and analyze a screenshot from that version of the project.

6 6 Introduction Problem Statement When modelling graphs, is it possible to randomly generate graphs and alter them using linear and angular springs to make something more natural looking, e.g., the pattern on an insect wing, or the bubbles under ice in FIGURE 1. FIGURE 1 Bubbles under ice Motivation Most randomly generated graphs have straight edges with intersections that look jagged but when we look at patterns that exist in nature, we rarely see such structures. When we want to generate random structures, the easiest structures to generate are graphs since we only need to randomly generate some nodes and randomly generate which pairs of those nodes will have edges between them. The purpose of this project was to find a way to randomly generate graphs and modify them using linear and angular springs to make them look natural.

7 7 Goals 1. Randomly generate graphs that would work well with springs. 2. Add linear(hookean) springs between each edge. 3. Add angular springs between each pair of edges that is connected. 4. Study what values work for both types of springs. 5. Study what constraints on graph generation work well with spring modeling. Objectives 1. Make a completely randomly generated graph. a. Randomly generate coordinates for the nodes. b. Randomly assign edges between nodes. c. Add a linear spring with a random desired length on each edge. d. Add an angular spring with a random desired angle between each pair of edges that share a parent. 2. Study the completely random graphs to find desirable traits. 3. Make a Pseudorandomly generated graph with constraints dependant on the desirable traits 4. Study the Pseudorandomly generated graphs to find desirable traits and move to step 3 (Repeat as many times as desired)

8 8 Background Processing Processing is an open source programming language and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching the fundamentals of computer programming in a visual context. The language builds on the Java language, but uses a simplified syntax and graphics programming model.this project uses Processing because it is an incredibly simple language for creating purely graphical programs. The simplicity of the language allows the code to be written much faster and leaves time to focus on the research aspects of this project. Running the project This project uses processing To install processing 2.2.1, 1. Go to 2. Look for under stable releases and download the version for your operating system 3. Extract the package that was downloaded To run the project, 1. Open the directory that was extracted 2. Execute processing.exe 3. In the menubar, select File > Open 4. Navigate to the project directory and select NaturalLookingGraphGenerator.pde 5. Press the run button 6. In order to activate the linear springs, press the left mouse button 7. In order to activate the angular springs, press any key on the keyboard

9 9 Report Generating completely random graphs At the start of the project, the graph generation was incredibly unsophisticated, it was just as a sanity check for the graph generation framework actually working. The results were mostly insignificant but there were two very important findings from it. Firstly, the graph was incredibly jagged so edges had to be divided into a lot of sub edges to make curves. Secondly, dangling edges make the graph look more sloppy so every node in the graph had to be anchored to the edges of the screen at two points. It also definitively proved that the graph manipulation framework was working as intended. FIGURE 2 A Completely Random Graph

10 10 Subdividing edges To subdivide the edges, the program divides each edge large enough into two edges by inserting a vertex between them and recursively sends both edges through the same process. After a couple of iterations, it seemed like keeping the threshold at 10 pixels worked out pretty well, keeping the length of all edges between 5 to 10 pixels. While the problem of the graph looking jagged was fixed, the anchoring problem became even more apparent. The dangling edges could not get to a rest state with the angular springs because they would just keep swinging with nothing to keep them anchored. Two other problems also arose at this point. The first was that the randomly generated angles were making slightly odd looking structures which could be fixed by making the primary edges have some cohesive structure that the sub edges tried to follow, like a sine curve. The second was that intersections didn t look very nice when the physics were being applied. This could be fixed by making a node at the intersection point and dividing the two edges intersecting there into four edges converging on that node. FIGURE 3 Graph with edges subdivided

11 11 Anchoring nodes The first few attempts at anchoring all nodes to two points on the edge of the screen ended in the program running into an infinite loop until I realized that for nodes to be anchored, there needed to be a minimum of two points on the edge of the screen. The graphs that had only two points on the edge of the screen looked very biased toward one corner of the screen if the points were on adjacent edges of the screen, or very narrow if the points were on the opposite sides of the screen. This problem got fixed by mandating a node on each edge of the screen. This led to more structured graphs but made the cohesive edge angles problem more apparent. FIGURE 4 Graph with anchored edges

12 12 Edges that try to make circular patterns To make all edges try to follow circular patterns, I set all the desired angles for angular springs to the same value. This made them all curve evenly making a perfect semicircle. FIGURE 4 was a huge success for the project because the left hand side of it has a pattern that has more of a natural look to it than anything that had been produced till now. This was a breakthrough for the project. That being said, the rest of the graph was still very bare and bland. FIGURE 5 Graph with circular patterns

13 13 Edges that try to make sine curves The next experiment was to make a graph where all the edges were trying to form a sine curve. This was done by assigning the first two subdivisions of an edge the values 1 and 1 and multiplying the fixed desired angles with the sign of the edge. FIGURE 5 brings an image that closely resembles a butterfly wing at the center which signified that the project was moving in the right direction. The rest of the graph was still very unremarkable. FIGURE 6 Graph with sine curves Remark In order to make the graph generate sine curves instead of circular curves, change the value of the boolean variable SINE to true.

14 14 Combining the two types of curves I was curious as to how the two types of curves mixed into a graph so I made edges have a 50% chance of being one of the two curves to see how it would turn out. After looking at a lot of randomly generated graphs, FIGURE 6 is the best graph that was produced. I think the graph became less natural looking by using both types of curves. FIGURE 7 Graph with sine curves and circular curves

15 15 Adding variety in angles and anchoring primary vertices In all the previous iterations with sine curves and circular curves, all of the angular springs were using the same angles regardless of which primary edge they were a part of. The next experiment was to change the angles each of the primary edges made. Another test I did here was that I made all the primary vertices immovable. This made the angles exert more force within their constraints which I think made the angles look more pronounced. I tried this with both circular curves and sine curves. FIGURE 7 and 8 show that adding the variety in angles and anchoring the primary vertices in both types of curve graphs made the graphs more natural looking. FIGURE 8 Graph with variable circular curves and fixed primary vertices

16 FIGURE 9 Graph with variable sine curves and fixed primary vertices 16

17 17 Conclusion The project set out to randomly generate natural looking graphs and I made a lot of progress on that front but ultimately the program only partially succeeds in that endeavour. In order to get three natural looking sine curve graphs, it took the program 13 tries and to get three natural looking circular curve graphs, it took the program 15 tries. There are a couple of ideas that I have listed in the section titled Looking Forward that I believe would have made the program have a better success rate. Given the start point, the program has evolved a decent bit and is capable of generating some beautiful graphs but the success rate is too low for me to label it a success. Looking Forward These are a couple of features I wanted to implement in the project but did not get the time to 1. Line intersections At every point of intersection, add a new node and split the two edges into four edges that converge at that node. 2. Coulombs s Law I wanted to solve the problem of edges crossing over each other due to the spring forces by making nodes have charges based on their parent edge that would repel all vertices that belong to other edges. 3. Bezier Curves I wanted to make a keypress function that made the physics simulation halt at the current point and model the current state of the graph using Bezier curves.

18 18 Appendix A Graphs generated for the statistics in the conclusion FIGURE 10 Natural looking sine curve 1

19 19 FIGURE 11 Natural looking sine curve 2 FIGURE 12 Natural looking sine curve 3

20 20 FIGURE 13 Natural looking circular curve 1 FIGURE 14 Natural looking circular curve 2

21 FIGURE 15 Natural looking circular curve 3 21

Fundamentals of Operations Research. Prof. G. Srinivasan. Department of Management Studies. Indian Institute of Technology Madras.

Fundamentals of Operations Research. Prof. G. Srinivasan. Department of Management Studies. Indian Institute of Technology Madras. Fundamentals of Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology Madras Lecture No # 06 Simplex Algorithm Initialization and Iteration (Refer Slide

More information

4. Write sets of directions for how to check for direct variation. How to check for direct variation by analyzing the graph :

4. Write sets of directions for how to check for direct variation. How to check for direct variation by analyzing the graph : Name Direct Variations There are many relationships that two variables can have. One of these relationships is called a direct variation. Use the description and example of direct variation to help you

More information

(Refer Slide Time: 00:02:24 min)

(Refer Slide Time: 00:02:24 min) CAD / CAM Prof. Dr. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 9 Parametric Surfaces II So these days, we are discussing the subject

More information

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name DIRECT AND INVERSE VARIATIONS 19 Direct Variations Name Of the many relationships that two variables can have, one category is called a direct variation. Use the description and example of direct variation

More information

1. Mesh Coloring a.) Assign unique color to each polygon based on the polygon id.

1. Mesh Coloring a.) Assign unique color to each polygon based on the polygon id. 1. Mesh Coloring a.) Assign unique color to each polygon based on the polygon id. Figure 1: The dragon model is shown rendered using a coloring scheme based on coloring each triangle face according to

More information

CS 4349 Lecture October 18th, 2017

CS 4349 Lecture October 18th, 2017 CS 4349 Lecture October 18th, 2017 Main topics for #lecture include #minimum_spanning_trees. Prelude Homework 6 due today. Homework 7 due Wednesday, October 25th. Homework 7 has one normal homework problem.

More information

(Refer Slide Time 3:31)

(Refer Slide Time 3:31) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions

More information

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet. Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that

More information

(Refer Slide Time: 4:00)

(Refer Slide Time: 4:00) Principles of Programming Languages Dr. S. Arun Kumar Department of Computer Science & Engineering Indian Institute of Technology, Delhi Lecture - 38 Meanings Let us look at abstracts namely functional

More information

(Refer Slide Time: 01.26)

(Refer Slide Time: 01.26) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture # 22 Why Sorting? Today we are going to be looking at sorting.

More information

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing

More information

Photoshop Introduction to The Shape Tool nigelbuckner This handout is an introduction to get you started using the Shape tool.

Photoshop Introduction to The Shape Tool nigelbuckner This handout is an introduction to get you started using the Shape tool. Photoshop Introduction to The Shape Tool nigelbuckner 2008 This handout is an introduction to get you started using the Shape tool. What is a shape in Photoshop? The Shape tool makes it possible to draw

More information

Fig. A. Fig. B. Fig. 1. Fig. 2. Fig. 3 Fig. 4

Fig. A. Fig. B. Fig. 1. Fig. 2. Fig. 3 Fig. 4 Create A Spinning Logo Tutorial. Bob Taylor 2009 To do this you will need two programs from Xara: Xara Xtreme (or Xtreme Pro) and Xara 3D They are available from: http://www.xara.com. Xtreme is available

More information

MITOCW watch?v=kz7jjltq9r4

MITOCW watch?v=kz7jjltq9r4 MITOCW watch?v=kz7jjltq9r4 PROFESSOR: We're going to look at the most fundamental of all mathematical data types, namely sets, and let's begin with the definitions. So informally, a set is a collection

More information

Kuratowski Notes , Fall 2005, Prof. Peter Shor Revised Fall 2007

Kuratowski Notes , Fall 2005, Prof. Peter Shor Revised Fall 2007 Kuratowski Notes 8.30, Fall 005, Prof. Peter Shor Revised Fall 007 Unfortunately, the OCW notes on Kuratowski s theorem seem to have several things substantially wrong with the proof, and the notes from

More information

MITOCW watch?v=r6-lqbquci0

MITOCW watch?v=r6-lqbquci0 MITOCW watch?v=r6-lqbquci0 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

(Refer Slide Time: 06:01)

(Refer Slide Time: 06:01) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 28 Applications of DFS Today we are going to be talking about

More information

View Frustum Culling with Octree

View Frustum Culling with Octree View Frustum Culling with Octree Raka Mahesa 13508074 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia if18074@itb.ac.id

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi. Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data

More information

EECS 203 Spring 2016 Lecture 8 Page 1 of 6

EECS 203 Spring 2016 Lecture 8 Page 1 of 6 EECS 203 Spring 2016 Lecture 8 Page 1 of 6 Algorithms (3.1-3.3) Algorithms are a huge topic. In CSE we have 2 theory classes purely dedicated to algorithms (EECS 477 and EECS 586) and a number of classes

More information

Physically-Based Laser Simulation

Physically-Based Laser Simulation Physically-Based Laser Simulation Greg Reshko Carnegie Mellon University reshko@cs.cmu.edu Dave Mowatt Carnegie Mellon University dmowatt@andrew.cmu.edu Abstract In this paper, we describe our work on

More information

CSC 2515 Introduction to Machine Learning Assignment 2

CSC 2515 Introduction to Machine Learning Assignment 2 CSC 2515 Introduction to Machine Learning Assignment 2 Zhongtian Qiu(1002274530) Problem 1 See attached scan files for question 1. 2. Neural Network 2.1 Examine the statistics and plots of training error

More information

MITOCW watch?v=zm5mw5nkzjg

MITOCW watch?v=zm5mw5nkzjg MITOCW watch?v=zm5mw5nkzjg The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013

CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013 CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013 Reading: Today s materials is presented in part in Computational Geometry: Algorithms and Applications (3rd

More information

Yup, left blank on purpose. You can use it to draw whatever you want :-)

Yup, left blank on purpose. You can use it to draw whatever you want :-) Yup, left blank on purpose. You can use it to draw whatever you want :-) Chapter 1 The task I have assigned myself is not an easy one; teach C.O.F.F.E.E. Not the beverage of course, but the scripting language

More information

Sketching Data

Sketching Data Sketching Data 101010001010 Carson Smuts - GSAPP 2013 This document outlines the core principles behind Parametric and Algorithmic computation. What has become evident is that users tend to learn as much

More information

Chapter 9- Animation Basics

Chapter 9- Animation Basics Timing, Moving, Rotating and Scaling Now that we know how to make stuff and make it look good, it s time to figure out how to move it around in your scene. Another name for an animation is Interpolation

More information

6 Using Adobe illustrator: advanced

6 Using Adobe illustrator: advanced 6 Using Adobe illustrator: advanced This document was prepared by Luke Easterbrook 2011. 1 Summary This document covers the use of the Adobe Creative Suite for Scientific Illustration. The adobe creative

More information

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 18 All-Integer Dual Algorithm We continue the discussion on the all integer

More information

02291: System Integration

02291: System Integration 02291: System Integration Hubert Baumeister hub@imm.dtu.dk Spring 2011 Contents 1 Recap 1 2 More UML Diagrams 2 2.1 Object Diagrams........................................... 2 2.2 Communication Diagrams......................................

More information

(Refer Slide Time: 00:51)

(Refer Slide Time: 00:51) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute Technology, Madras Module 10 E Lecture 24 Content Example: factorial

More information

(Refer Slide Time 6:48)

(Refer Slide Time 6:48) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about

More information

Simple Graph. General Graph

Simple Graph. General Graph Graph Theory A graph is a collection of points (also called vertices) and lines (also called edges), with each edge ending at a vertex In general, it is allowed for more than one edge to have the same

More information

Memorandum Participants Method

Memorandum Participants Method Memorandum To: Elizabeth Pass, Associate Professor, School of Writing, Rhetoric and Technical Communication From: Andrew Carnes, WRTC 456 Section 1[ADC] Date: February 2, 2016 Re: Project 1 Competitor

More information

Lab 9. Julia Janicki. Introduction

Lab 9. Julia Janicki. Introduction Lab 9 Julia Janicki Introduction My goal for this project is to map a general land cover in the area of Alexandria in Egypt using supervised classification, specifically the Maximum Likelihood and Support

More information

Introduction to Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Introduction to Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Introduction to Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Module - 05 Lecture - 24 Solving LPs with mixed type of constraints In the

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

Dgp _ lecture 2. Curves

Dgp _ lecture 2. Curves Dgp _ lecture 2 Curves Questions? This lecture will be asking questions about curves, their Relationship to surfaces, and how they are used and controlled. Topics of discussion will be: Free form Curves

More information

Unit 10 Circles 10-1 Properties of Circles Circle - the set of all points equidistant from the center of a circle. Chord - A line segment with

Unit 10 Circles 10-1 Properties of Circles Circle - the set of all points equidistant from the center of a circle. Chord - A line segment with Unit 10 Circles 10-1 Properties of Circles Circle - the set of all points equidistant from the center of a circle. Chord - A line segment with endpoints on the circle. Diameter - A chord which passes through

More information

An Introduction to Computers and Java CSC 121 Spring 2015 Howard Rosenthal

An Introduction to Computers and Java CSC 121 Spring 2015 Howard Rosenthal An Introduction to Computers and Java CSC 121 Spring 2015 Howard Rosenthal Lesson Goals Learn the basic terminology of a computer system Understand the basics of high level languages, including java Understand

More information

Interactive Scientific Visualization of Polygonal Knots

Interactive Scientific Visualization of Polygonal Knots Interactive Scientific Visualization of Polygonal Knots Abstract Dr. Kenny Hunt Computer Science Department The University of Wisconsin La Crosse hunt@mail.uwlax.edu Eric Lunde Computer Science Department

More information

Naming Angles. One complete rotation measures 360º. Half a rotation would then measure 180º. A quarter rotation would measure 90º.

Naming Angles. One complete rotation measures 360º. Half a rotation would then measure 180º. A quarter rotation would measure 90º. Naming Angles What s the secret for doing well in geometry? Knowing all the angles. An angle can be seen as a rotation of a line about a fixed point. In other words, if I were mark a point on a paper,

More information

Lesson 1: Creating T- Spline Forms. In Samples section of your Data Panel, browse to: Fusion 101 Training > 03 Sculpt > 03_Sculpting_Introduction.

Lesson 1: Creating T- Spline Forms. In Samples section of your Data Panel, browse to: Fusion 101 Training > 03 Sculpt > 03_Sculpting_Introduction. 3.1: Sculpting Sculpting in Fusion 360 allows for the intuitive freeform creation of organic solid bodies and surfaces by leveraging the T- Splines technology. In the Sculpt Workspace, you can rapidly

More information

Here is the design that I created in response to the user feedback.

Here is the design that I created in response to the user feedback. Mobile Creative Application Development Assignment 2 Report Design When designing my application, I used my original proposal as a rough guide as to how to arrange each element. The original idea was to

More information

Skill 1: Multiplying Polynomials

Skill 1: Multiplying Polynomials CS103 Spring 2018 Mathematical Prerequisites Although CS103 is primarily a math class, this course does not require any higher math as a prerequisite. The most advanced level of mathematics you'll need

More information

Keyword: Quadratic Bézier Curve, Bisection Algorithm, Biarc, Biarc Method, Hausdorff Distances, Tolerance Band.

Keyword: Quadratic Bézier Curve, Bisection Algorithm, Biarc, Biarc Method, Hausdorff Distances, Tolerance Band. Department of Computer Science Approximation Methods for Quadratic Bézier Curve, by Circular Arcs within a Tolerance Band Seminar aus Informatik Univ.-Prof. Dr. Wolfgang Pree Seyed Amir Hossein Siahposhha

More information

6.001 Notes: Section 17.5

6.001 Notes: Section 17.5 6.001 Notes: Section 17.5 Slide 17.5.1 Now, let's look at one example in which changing the evaluation model allows us to explore a very different kind of computational problem. Our goal is to show how

More information

(Refer Slide Time: 1:27)

(Refer Slide Time: 1:27) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data

More information

KINEMATICS FOR ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

KINEMATICS FOR ANIMATION. Rémi Ronfard, Animation, M2R MOSIG KINEMATICS FOR ANIMATION Rémi Ronfard, Animation, M2R MOSIG Direct and inverse kinematics in animation Fast numerical methods for inverse kinematics by Bill Baxter My Adventures with Inverse Kinematics

More information

Lecture 34 SDLC Phases and UML Diagrams

Lecture 34 SDLC Phases and UML Diagrams That Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 34 SDLC Phases and UML Diagrams Welcome

More information

(Refer Slide Time: 00:01:53)

(Refer Slide Time: 00:01:53) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 36 Design of Circuits using MSI Sequential Blocks (Refer Slide Time:

More information

9 R1 Get another piece of paper. We re going to have fun keeping track of (inaudible). Um How much time do you have? Are you getting tired?

9 R1 Get another piece of paper. We re going to have fun keeping track of (inaudible). Um How much time do you have? Are you getting tired? Page: 1 of 14 1 R1 And this is tell me what this is? 2 Stephanie x times y plus x times y or hm? 3 R1 What are you thinking? 4 Stephanie I don t know. 5 R1 Tell me what you re thinking. 6 Stephanie Well.

More information

Geometric Entities for Pilot3D. Copyright 2001 by New Wave Systems, Inc. All Rights Reserved

Geometric Entities for Pilot3D. Copyright 2001 by New Wave Systems, Inc. All Rights Reserved Geometric Entities for Pilot3D Copyright 2001 by New Wave Systems, Inc. All Rights Reserved Introduction on Geometric Entities for Pilot3D The best way to develop a good understanding of any Computer-Aided

More information

Chapter 17: The Truth about Normals

Chapter 17: The Truth about Normals Chapter 17: The Truth about Normals What are Normals? When I first started with Blender I read about normals everywhere, but all I knew about them was: If there are weird black spots on your object, go

More information

CS140 Final Project. Nathan Crandall, Dane Pitkin, Introduction:

CS140 Final Project. Nathan Crandall, Dane Pitkin, Introduction: Nathan Crandall, 3970001 Dane Pitkin, 4085726 CS140 Final Project Introduction: Our goal was to parallelize the Breadth-first search algorithm using Cilk++. This algorithm works by starting at an initial

More information

There we are; that's got the 3D screen and mouse sorted out.

There we are; that's got the 3D screen and mouse sorted out. Introduction to 3D To all intents and purposes, the world we live in is three dimensional. Therefore, if we want to construct a realistic computer model of it, the model should be three dimensional as

More information

Hex Planet Technical Demo Joel Davis

Hex Planet Technical Demo Joel Davis Hex Planet Technical Demo Joel Davis joeld42@yahoo.com Introduction Recently, on the yahoo Gamedesign-l mailing list, there was a discussion of different techniques for tiling a civ-like grid around a

More information

6 Stephanie Well. It s six, because there s six towers.

6 Stephanie Well. It s six, because there s six towers. Page: 1 of 10 1 R1 So when we divided by two all this stuff this is the row we ended up with. 2 Stephanie Um hm. 3 R1 Isn t that right? We had a row of six. Alright. Now before doing it see if you can

More information

1Anchors - Access. Part 23-1 Copyright 2004 ARCHIdigm. Architectural Desktop Development Guide PART 23 ANCHORS 1-23 ANCHORS

1Anchors - Access. Part 23-1 Copyright 2004 ARCHIdigm. Architectural Desktop Development Guide PART 23 ANCHORS 1-23 ANCHORS Architectural Desktop 2005 - Development Guide PART 23 ANCHORS Contents: Anchors - Access ---- Working with the Curve Anchor ---- Working with the Leader Anchor ---- Working with the Node Anchor ---- Working

More information

VANSTEENKISTE LEO DAE GD ENG UNFOLD SHADER. Introduction

VANSTEENKISTE LEO DAE GD ENG UNFOLD SHADER. Introduction VANSTEENKISTE LEO 2015 G E O M E T RY S H A D E R 2 DAE GD ENG UNFOLD SHADER Introduction Geometry shaders are a powerful tool for technical artists, but they always seem to be used for the same kind of

More information

Tangents. In this tutorial we are going to take a look at how tangents can affect an animation.

Tangents. In this tutorial we are going to take a look at how tangents can affect an animation. Tangents In this tutorial we are going to take a look at how tangents can affect an animation. One of the 12 Principles of Animation is called Slow In and Slow Out. This refers to the spacing of the in

More information

Generating Test Data with Enhanced Context Free Grammars

Generating Test Data with Enhanced Context Free Grammars Generating Test Data with Enhanced Context Free Grammars Peter M. Maurer Department of Computer Science and Engineering University of South Florida Tampa, FL 33620 ABSTRACT Enhanced context free grammars

More information

Algebra 2: Chapter 8 Part I Practice Quiz Unofficial Worked-Out Solutions

Algebra 2: Chapter 8 Part I Practice Quiz Unofficial Worked-Out Solutions Algebra 2: Chapter 8 Part I Practice Quiz Unofficial Worked-Out Solutions In working with rational functions, I tend to split them up into two types: Simple rational functions are of the form y = a x h

More information

(Refer Slide Time: 01:01)

(Refer Slide Time: 01:01) Principles of Programming Languages Dr. S. Arun Kumar Department of Computer Science & Engineering Indian Institute of Technology, Delhi Lecture - 32 Monomorphism Welcome to lecture 32. So today I will

More information

Bonus Ch. 1. Subdivisional Modeling. Understanding Sub-Ds

Bonus Ch. 1. Subdivisional Modeling. Understanding Sub-Ds Bonus Ch. 1 Subdivisional Modeling Throughout this book, you ve used the modo toolset to create various objects. Some objects included the use of subdivisional surfaces, and some did not. But I ve yet

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

Textures and UV Mapping in Blender

Textures and UV Mapping in Blender Textures and UV Mapping in Blender Categories : Uncategorised Date : 21st November 2017 1 / 25 (See below for an introduction to UV maps and unwrapping) Jim s Notes regarding Blender objects, the UV Editor

More information

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer The exam consists of 10 questions. There are 2 points per question for a total of 20 points. You

More information

Chapter 10 Recursion

Chapter 10 Recursion Chapter 10 Recursion Written by Dr. Mark Snyder [minor edits for this semester by Dr. Kinga Dobolyi] Recursion implies that something is defined in terms of itself. We will see in detail how code can be

More information

1 Leaffix Scan, Rootfix Scan, Tree Size, and Depth

1 Leaffix Scan, Rootfix Scan, Tree Size, and Depth Lecture 17 Graph Contraction I: Tree Contraction Parallel and Sequential Data Structures and Algorithms, 15-210 (Spring 2012) Lectured by Kanat Tangwongsan March 20, 2012 In this lecture, we will explore

More information

Data Structures And Other Objects Using Java Download Free (EPUB, PDF)

Data Structures And Other Objects Using Java Download Free (EPUB, PDF) Data Structures And Other Objects Using Java Download Free (EPUB, PDF) This is the ebook of the printed book and may not include any media, website access codes, or print supplements that may come packaged

More information

** Pre-Sell Page Secrets **

** Pre-Sell Page Secrets ** ** Pre-Sell Page Secrets ** Page 1 - CommissionBlueprint.com 2008 Introduction Using a pre-sell page is a highly effective tactic that can be used in almost any market to motivate a visitor into purchasing

More information

A DIVIDE AND CONQUER METHOD FOR CURVE DRAWING

A DIVIDE AND CONQUER METHOD FOR CURVE DRAWING ECS 78 Course Notes A DIVIDE AND CONQUER METHOD FOR CURVE DRAWING Kenneth I. Joy Institute for Data Analysis and Visualization Department of Computer Science University of California, Davis Overview In

More information

Math Dr. Miller - Constructing in Sketchpad (tm) - Due via by Friday, Mar. 18, 2016

Math Dr. Miller - Constructing in Sketchpad (tm) - Due via  by Friday, Mar. 18, 2016 Math 304 - Dr. Miller - Constructing in Sketchpad (tm) - Due via email by Friday, Mar. 18, 2016 As with our second GSP activity for this course, you will email the assignment at the end of this tutorial

More information

Read & Download (PDF Kindle) Data Structures And Other Objects Using Java (4th Edition)

Read & Download (PDF Kindle) Data Structures And Other Objects Using Java (4th Edition) Read & Download (PDF Kindle) Data Structures And Other Objects Using Java (4th Edition) Data Structures and Other Objects Using Java is a gradual, "just-in-time" introduction to Data Structures for a CS2

More information

A Survey of Software Packages for Teaching Linear and Integer Programming

A Survey of Software Packages for Teaching Linear and Integer Programming A Survey of Software Packages for Teaching Linear and Integer Programming By Sergio Toledo Spring 2018 In Partial Fulfillment of Math (or Stat) 4395-Senior Project Department of Mathematics and Statistics

More information

Fundamentals. Fundamentals. Fundamentals. We build up instructions from three types of materials

Fundamentals. Fundamentals. Fundamentals. We build up instructions from three types of materials Fundamentals We build up instructions from three types of materials Constants Expressions Fundamentals Constants are just that, they are values that don t change as our macros are executing Fundamentals

More information

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render 1 There are two major classes of algorithms for extracting most kinds of lines from 3D meshes. First, there are image-space algorithms that render something (such as a depth map or cosine-shaded model),

More information

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture - 04 Introduction to Programming Language Concepts

More information

UKNova s Getting Connectable Guide

UKNova s Getting Connectable Guide UKNova s Getting Connectable Guide Version 1.2 2010/03/22 1. WHAT IS "BEING CONNECTABLE" AND WHY DO I NEED IT? Being connectable means being able to give back to others it is the fundamental principle

More information

Procedures: Algorithms and Abstraction

Procedures: Algorithms and Abstraction Procedures: Algorithms and Abstraction 5 5.1 Objectives After completing this module, a student should be able to: Read and understand simple NetLogo models. Make changes to NetLogo procedures and predict

More information

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 16 Cutting Plane Algorithm We shall continue the discussion on integer programming,

More information

ECE 600, Dr. Farag, Summer 09

ECE 600, Dr. Farag, Summer 09 ECE 6 Summer29 Course Supplements. Lecture 4 Curves and Surfaces Aly A. Farag University of Louisville Acknowledgements: Help with these slides were provided by Shireen Elhabian A smile is a curve that

More information

GeoGebra Workshop. (Short Version)

GeoGebra Workshop. (Short Version) GeoGebra Workshop (Short Version) Contents Introduction... 2 What is GeoGebra?... 2 Get GeoGebra... 2 Workshop Format... 2 GeoGebra Layout... 3 Examples... 5 The Incenter and Incircle... 5 The Sine Function

More information

COMP 410 Lecture 1. Kyle Dewey

COMP 410 Lecture 1. Kyle Dewey COMP 410 Lecture 1 Kyle Dewey About Me I research automated testing techniques and their intersection with CS education My dissertation used logic programming extensively This is my second semester at

More information

Shape and Line Tools. tip: Some drawing techniques are so much easier if you use a pressuresensitive

Shape and Line Tools. tip: Some drawing techniques are so much easier if you use a pressuresensitive 4Drawing with Shape and Line Tools Illustrator provides tools for easily creating lines and shapes. Drawing with shapes (rectangles, ellipses, stars, etc.) can be a surprisingly creative and satisfying

More information

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural 1 Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural to consider using it in video games too. 2 I hope that

More information

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 24 Solid Modelling

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 24 Solid Modelling Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 24 Solid Modelling Welcome to the lectures on computer graphics. We have

More information

Prezi Quick Guide: Make a Prezi in minutes

Prezi Quick Guide: Make a Prezi in minutes Prezi Quick Guide: Make a Prezi in minutes by Billy Meinke Updated Feb 2016 by Gina Iijima Welcome! This short guide will have you making functional and effective Prezis in no time. Prezi is a dynamic

More information

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the

More information

Project Final Report

Project Final Report Project Final Report Automatic Number Plate Recognition BSc (Hons) Software Development Year 4 Student name: Michael Reid Student ID: C00112726 Project supervisor: Mr. Nigel Whyte Table of Contents 1 Introduction...

More information

Polar Coordinates. 2, π and ( )

Polar Coordinates. 2, π and ( ) Polar Coordinates Up to this point we ve dealt exclusively with the Cartesian (or Rectangular, or x-y) coordinate system. However, as we will see, this is not always the easiest coordinate system to work

More information

CIS 121 Data Structures and Algorithms with Java Spring 2018

CIS 121 Data Structures and Algorithms with Java Spring 2018 CIS 121 Data Structures and Algorithms with Java Spring 2018 Homework 2 Thursday, January 18 Due Monday, January 29 by 11:59 PM 7 Required Problems (85 points), and Style and Tests (15 points) DO NOT modify

More information

TRINITAS. a Finite Element stand-alone tool for Conceptual design, Optimization and General finite element analysis. Introductional Manual

TRINITAS. a Finite Element stand-alone tool for Conceptual design, Optimization and General finite element analysis. Introductional Manual TRINITAS a Finite Element stand-alone tool for Conceptual design, Optimization and General finite element analysis Introductional Manual Bo Torstenfelt Contents 1 Introduction 1 2 Starting the Program

More information

Project report Augmented reality with ARToolKit

Project report Augmented reality with ARToolKit Project report Augmented reality with ARToolKit FMA175 Image Analysis, Project Mathematical Sciences, Lund Institute of Technology Supervisor: Petter Strandmark Fredrik Larsson (dt07fl2@student.lth.se)

More information

Utilizing a Common Language as a Generative Software Reuse Tool

Utilizing a Common Language as a Generative Software Reuse Tool Utilizing a Common Language as a Generative Software Reuse Tool Chris Henry and Stanislaw Jarzabek Department of Computer Science School of Computing, National University of Singapore 3 Science Drive,

More information

Paul's Online Math Notes. Online Notes / Algebra (Notes) / Systems of Equations / Augmented Matricies

Paul's Online Math Notes. Online Notes / Algebra (Notes) / Systems of Equations / Augmented Matricies 1 of 8 5/17/2011 5:58 PM Paul's Online Math Notes Home Class Notes Extras/Reviews Cheat Sheets & Tables Downloads Algebra Home Preliminaries Chapters Solving Equations and Inequalities Graphing and Functions

More information

Case Study: Best Strategy To Rank Your Content On Google

Case Study: Best Strategy To Rank Your Content On Google Case Study: Best Strategy To Rank Your Content On Google SEOPressor Connect Presents: Case Study: Best Strategy To Rank Your Content On Google Copyright 2016 SEOPressor Connect All Rights Reserved 1 There

More information

CSE143 Notes for Monday, 4/25/11

CSE143 Notes for Monday, 4/25/11 CSE143 Notes for Monday, 4/25/11 I began a new topic: recursion. We have seen how to write code using loops, which a technique called iteration. Recursion an alternative to iteration that equally powerful.

More information

3 Polygonal Modeling. Getting Started with Maya 103

3 Polygonal Modeling. Getting Started with Maya 103 3 Polygonal Modeling In Maya, modeling refers to the process of creating virtual 3D surfaces for the characters and objects in the Maya scene. Surfaces play an important role in the overall Maya workflow

More information