Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if other_arc.end.lon - other_arc.start.lon > np.pi:
other_arc.end.lon -= 2 * np.pi
if self.end.lon - self.start.lon < -np.pi:
self.end.lon += 2 * np.pi
if other_arc.end.lon - other_arc.start.lon < -np.pi:
other_arc.end.lon += 2 * np.pi
ea_ = self.start.cross2cart(self.end).normalize()
eb_ = other_arc.start.cross2cart(other_arc.end).normalize()
cross = ea_.cross(eb_)
lat = np.arctan2(cross.cart[2],
np.sqrt(cross.cart[0] ** 2 + cross.cart[1] ** 2))
lon = np.arctan2(cross.cart[1], cross.cart[0])
return (SCoordinate(lon, lat),
SCoordinate(modpi(lon + np.pi), -lat))
anti_lon_0 = self.lon[0] + np.pi
if anti_lon_0 > np.pi:
anti_lon_0 -= np.pi * 2
anti_lon_1 = self.lon[1] + np.pi
if anti_lon_1 > np.pi:
anti_lon_1 -= np.pi * 2
arc1 = Arc(SCoordinate(self.lon[1],
self.lat[1]),
SCoordinate(anti_lon_0,
-self.lat[0]))
arc2 = Arc(SCoordinate(anti_lon_0,
-self.lat[0]),
SCoordinate(anti_lon_1,
-self.lat[1]))
arc3 = Arc(SCoordinate(anti_lon_1,
-self.lat[1]),
SCoordinate(self.lon[0],
self.lat[0]))
other_arcs = [edge for edge in other.aedges()]
for arc in [arc1, arc2, arc3]:
inter, other_arc = arc.get_next_intersection(other_arcs)
if inter is not None:
sarc = Arc(arc.start, inter)
earc = Arc(inter, other_arc.end)
return sarc.angle(earc) < 0
return other.area() > (2 * np.pi * other.radius ** 2)
def aedges(self):
"""Iterator over the edges, in arcs of Coordinates."""
for (lon_start, lat_start), (lon_stop, lat_stop) in self.edges():
yield Arc(SCoordinate(lon_start, lat_start),
SCoordinate(lon_stop, lat_stop))
other_arc.end.lon -= 2 * np.pi
if self.end.lon - self.start.lon < -np.pi:
self.end.lon += 2 * np.pi
if other_arc.end.lon - other_arc.start.lon < -np.pi:
other_arc.end.lon += 2 * np.pi
ea_ = self.start.cross2cart(self.end).normalize()
eb_ = other_arc.start.cross2cart(other_arc.end).normalize()
cross = ea_.cross(eb_)
lat = np.arctan2(cross.cart[2],
np.sqrt(cross.cart[0] ** 2 + cross.cart[1] ** 2))
lon = np.arctan2(cross.cart[1], cross.cart[0])
return (SCoordinate(lon, lat),
SCoordinate(modpi(lon + np.pi), -lat))
if anti_lon_1 > np.pi:
anti_lon_1 -= np.pi * 2
arc1 = Arc(SCoordinate(self.lon[1],
self.lat[1]),
SCoordinate(anti_lon_0,
-self.lat[0]))
arc2 = Arc(SCoordinate(anti_lon_0,
-self.lat[0]),
SCoordinate(anti_lon_1,
-self.lat[1]))
arc3 = Arc(SCoordinate(anti_lon_1,
-self.lat[1]),
SCoordinate(self.lon[0],
self.lat[0]))
other_arcs = [edge for edge in other.aedges()]
for arc in [arc1, arc2, arc3]:
inter, other_arc = arc.get_next_intersection(other_arcs)
if inter is not None:
sarc = Arc(arc.start, inter)
earc = Arc(inter, other_arc.end)
return sarc.angle(earc) < 0
return other.area() > (2 * np.pi * other.radius ** 2)