Added more point generation stuff
This commit is contained in:
parent
c9f4182529
commit
bdbdfa624d
28
h2/util.py
28
h2/util.py
|
@ -2,6 +2,7 @@ import random
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
from enum import Enum, auto
|
from enum import Enum, auto
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
from math import cos, sin, sqrt, pi
|
||||||
|
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
@ -32,6 +33,33 @@ def display(points: Set[Point], hull: Set[Point]):
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
def gen_circular_point(lower : int = 0, upper: int = 10, radius: int = 5) -> Point:
|
||||||
|
|
||||||
|
a = random.uniform(lower, upper) * 2 * pi
|
||||||
|
|
||||||
|
r = radius * sqrt(random.uniform(lower, upper))
|
||||||
|
|
||||||
|
|
||||||
|
x = r * cos(a)
|
||||||
|
y = r * sin(a)
|
||||||
|
|
||||||
|
return Point(x,y)
|
||||||
|
|
||||||
|
def gen_weird_point(lower : int = 0, upper: int = 10) -> Point:
|
||||||
|
x = random.uniform(lower, upper)
|
||||||
|
y = x**2
|
||||||
|
|
||||||
|
return Point(x,y)
|
||||||
|
|
||||||
|
|
||||||
|
def gen_triangular_point(left : Point, right : Point, top : Point):
|
||||||
|
r1 = random.uniform(0,1)
|
||||||
|
r2 = random.uniform(0,1)
|
||||||
|
|
||||||
|
return Point((1 - sqrt(r1)) * left.x + (sqrt(r1) * (1 - r2)) * right.x + (sqrt(r1) * r2) * top.x,
|
||||||
|
(1 - sqrt(r1)) * left.y + (sqrt(r1) * (1 - r2)) * right.y + (sqrt(r1) * r2) * top.y)
|
||||||
|
|
||||||
|
|
||||||
def display_line_only(points: Set[Point], slope: float, intercept: float, line_points: Set[Point]):
|
def display_line_only(points: Set[Point], slope: float, intercept: float, line_points: Set[Point]):
|
||||||
x = [point.x for point in points]
|
x = [point.x for point in points]
|
||||||
y = [point.y for point in points]
|
y = [point.y for point in points]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user