For example if the vertices were V[0], V[1], V[2], V[3], V[4], a point inside the polygon will be

.2*V[0]+.4*V[1]+.2*V[2]+.1*V[3]+.1*V[4]

Note that the coefficients add to 1 and are between inclusive 0 and 1!

I wrote this program to demonstrate. This is plotting points for any coefficients meeting these two criteria in 20 discrete steps between 0 and 1 inclusive and 5 vertices...

I've made it so c[0] makes a plotted point redder proportional to how large the coefficient is...

Below is with 50 discrete values between 0 and 1 of the variables:

I think it's clear with fine enough steps every part of the pentagon would be plotted, perhaps uniquely...

I'm still working on a proof though... I wrote the program just to see if it obviously wasn't true but it looks like it is...

#### **Source Code requires Python 3 and Pillow for Python**

from PIL import Image

def descend(n, c, i, s, d, plot, coords):

if i < n-1:

m = 1.0

while(m >= -d/2.0):

c[i] = m

if(s+m <=1-d/2.0):

descend(n, c, i+1, s+m, d, plot, coords)

m -= d

else:

c[n-1] = 1.0-s

print(c)

p = [0,0]

for j in range(0, n):

p[0] += c[j]*coords[j][0]

p[1] += c[j]*coords[j][1]

plot.putpixel((int(p[0]), int(p[1])), (255,255-int(c[0]*255),255-int(c[0]*255)))

def main():

coords = [[84,232],[104, 424],[342,508],[528,276],[330,212]]

plot = Image.new("RGB", [800,800])

c = [0,0,0,0,0]

descend(5, c, 0, 0, .05, plot, coords)

plot.save("plot.png")

main()

## No comments:

## Post a Comment