Perimeter of a polygon, Python Programming

Assignment Help:

Perimeter of a polygon

Now, let's consider the problem of computing the length  of the perimeter of a polygon. The input is a structure of vertices,  encoded as a list of lists of two  values (as like[[1, 2], [3.4, 7.6], [-4.4, 3]]). Here is the ?rst attempt:

 

def perim(vertices):

result = 0

for i in range(len(vertices)-1):

result = result + math.sqrt((vertices[i][0]-vertices[i+1][0])**2 + \ (vertices[i][1]-vertices[i+1][1])**2)

return result + math.sqrt((vertices[-1][0]-vertices[0][0])**2 + \ (vertices[-1][1]-vertices[0][1])**2)

 

Again, this works,  but it ain't correct. The basic cause is that someone reading the code doesn't immediately see what  all that  subtraction and  squaring is about.    We caould be fixed that  by de?ning another procedure:

 

def perim(vertices):

result = 0

for i in range(len(vertices)-1):

result = result + pointDist(vertices[i],vertices[i+1])

return result + pointDist(vertices[-1],vertices[0])

def pointDist(p1,p2):

return math.sqrt(sum([(p1[i] - p2[i])**2 for i in range(len(p1))]))

 

Now,  we've  de?ned a new  procedure pointDist, which  calculates the  Euclidean distance be­ tween  two positions.    And,  in fact,  we've  written it usually enough to work  on  points  of any dimension (not just two).  Just for fun, here's another example  to calculate the distance, which  some people would use  and others  would not.

 

def pointDist(p1,p2):

return math.sqrt(sum([(c1 - c2)**2 for (c1, c2) in zip(p1, p2)]))

For this to make sense, you have to understand zip. Here's a program of how it works:

> zip([1, 2, 3],[4, 5, 6])

[(1, 4), (2, 5), (3, 6)]

 


Related Discussions:- Perimeter of a polygon

Tuples and strings, Tuples  and strings Python has two different more...

Tuples  and strings Python has two different more list-like data  types  that are very important to understand.A tuple  is a structure that  is like a list, but  is not  mutab

Lab programming, protocol rdt2.2 considers there is a bit errors between se...

protocol rdt2.2 considers there is a bit errors between sender to receiver and also from receiver to sender. So now we have to consider checking bit errors introduced in reply from

Synthetic models, Synthetic models One  goal  of various  people in a ...

Synthetic models One  goal  of various  people in a variety of sub-disciplines of  electrical  engineering and  computer science is automatic synthesis of machine from  formal

Python programs, Python Programs You must submit the source code and s...

Python Programs You must submit the source code and samples of output for each program.Please do not provide python file (eg. Filename.py). Copy all source code to one word fi

Non-local references, Non-local references So far, whenever we needed ...

Non-local references So far, whenever we needed to compute a variable, there  was  a binding for that  variable in the 'local' environment (the environment in which  we were e

List mutation and shared structure, List mutation and shared structure ...

List mutation and shared structure Lists are mutable data  structures, which defines  that  we can actually modifies  the values  stored in their components. We do this by usi

Range, Range Very frequently, we will want to iterate through a list o...

Range Very frequently, we will want to iterate through a list of integer values, often as indices.  Python gives a useful function, range, which gives lists of integers. It ma

Work with functions, inputWithinRange (prompt, lowValue, highValue) This fu...

inputWithinRange (prompt, lowValue, highValue) This function will ask for a number using the prompt parameter. The function will only return a value that is within the inclusive ra

Example of python code, Worked example 1   Let's examine what  happens...

Worked example 1   Let's examine what  happens when  we compute the following Python code:   def p(x, y): z = x*x - y return z + 1/z   >>> p(1.0, 2.0) -2.0

Write Your Message!

Captcha
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