Files
PINA/pina/segment.py
2021-11-29 15:29:00 +01:00

28 lines
682 B
Python

import torch
import numpy as np
from .chebyshev import chebyshev_roots
class Segment():
def __init__(self, p1, p2):
self.p1 = p1
self.p2 = p2
def discretize(self, n, mode='random'):
pts = []
if mode == 'random':
iterator = np.random.uniform(0, 1, n)
elif mode == 'grid':
iterator = np.linspace(0, 1, n)
elif mode == 'chebyshev':
iterator = chebyshev_roots(n) * .5 + .5
for k in iterator:
x = self.p1[0] + k*(self.p2[0]-self.p1[0])
y = self.p1[1] + k*(self.p2[1]-self.p1[1])
pts.append((x, y))
pts = np.array(pts)
return pts