本文整理匯總了Python中math.degrees方法的典型用法代碼示例。如果您正苦於以下問題:Python math.degrees方法的具體用法?Python math.degrees怎麽用?Python math.degrees使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類math
的用法示例。
在下文中一共展示了math.degrees方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: heading_between_points
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def heading_between_points(x1, y1, x2, y2):
"""Returns the angle between 2 points in degrees.
:param x1: x coordinate of point 1
:param y1: y coordinate of point 1
:param x2: x coordinate of point 2
:param y2: y coordinate of point 2
:return: angle in degrees
"""
def angle_trunc(a):
while a < 0.0:
a += math.pi * 2
return a
deltax = x2 - x1
deltay = y2 - y1
return math.degrees(angle_trunc(math.atan2(deltay, deltax)))
示例2: opposing_angle
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def opposing_angle(pos1, pos2):
'''
Returns the angle of the other_agent relative to the agent
'''
x_dif = pos2[0] - pos1[0]
y_dif = pos2[1] - pos1[1]
if (x_dif != 0 and y_dif != 0):
if (x_dif > 0):
new_angle = 180 + degrees(atan(y_dif / x_dif))
else:
new_angle = degrees(atan(y_dif / x_dif))
elif (y_dif != 0):
if(y_dif > 0):
new_angle = 270
else:
new_angle = 90
else:
if(x_dif > 0):
new_angle = 180
else:
new_angle = 0
return new_angle
示例3: distance
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def distance(pointA, pointB):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
http://stackoverflow.com/questions/15736995/how-can-i-quickly-estimate-the-distance-between-two-latitude-longitude-points
"""
# convert decimal degrees to radians
lon1, lat1, lon2, lat2 = map(math.radians, [pointA[1], pointA[0], pointB[1], pointB[0]])
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
c = 2 * math.asin(math.sqrt(a))
r = 3956 # Radius of earth in miles. Use 6371 for kilometers
return c * r
示例4: rotate_bbox
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def rotate_bbox(box, a):
'''Rotate a bounding box 4-tuple by an angle in degrees'''
corners = ( (box[0], box[1]), (box[0], box[3]), (box[2], box[3]), (box[2], box[1]) )
a = -math.radians(a)
sa = math.sin(a)
ca = math.cos(a)
rot = []
for p in corners:
rx = p[0]*ca + p[1]*sa
ry = -p[0]*sa + p[1]*ca
rot.append((rx,ry))
# Find the extrema of the rotated points
rot = list(zip(*rot))
rx0 = min(rot[0])
rx1 = max(rot[0])
ry0 = min(rot[1])
ry1 = max(rot[1])
#print('## RBB:', box, rot)
return (rx0, ry0, rx1, ry1)
示例5: vector_angle_between
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def vector_angle_between(vector1, vector2, **kwargs):
""" Computes the angle between the two input vectors.
If the keyword argument ``degrees`` is set to *True*, then the angle will be in degrees. Otherwise, it will be
in radians. By default, ``degrees`` is set to *True*.
:param vector1: vector
:type vector1: list, tuple
:param vector2: vector
:type vector2: list, tuple
:return: angle between the vectors
:rtype: float
"""
degrees = kwargs.get('degrees', True)
magn1 = vector_magnitude(vector1)
magn2 = vector_magnitude(vector2)
acos_val = vector_dot(vector1, vector2) / (magn1 * magn2)
angle_radians = math.acos(acos_val)
if degrees:
return math.degrees(angle_radians)
else:
return angle_radians
示例6: _view_update_camera
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def _view_update_camera(aspect, v3d, rv3d, camera):
zoom = rv3d.view_camera_zoom
z = ((_SQRT2 + zoom / 50) ** 2) / 4
cdata = v3d.camera.data
fit = cdata.sensor_fit
if fit == 'VERTICAL':
sensor = cdata.sensor_height
_sensor = (16 * sensor / 9) / z # sensor / (18 / 32)
z *= 9 / 16 # 18 / 32
else:
sensor = cdata.sensor_width
_sensor = sensor / z
lens = cdata.lens
camera['fov'] = ('FLOAT', math.degrees(2 * math.atan(_sensor / (2 * lens))))
offset_x, offset_y = rv3d.view_camera_offset
shift_x = cdata.shift_x
shift_y = cdata.shift_y
shx = 2 * z * (2 * offset_x + shift_x)
shy = 2 * z * (2 * offset_y + shift_y * aspect)
camera['screen_window_min'] = ('VECTOR2', (-1, -1))
camera['screen_window_max'] = ('VECTOR2', (1, 1))
return (zoom, fit, sensor, lens, offset_x, offset_y, shift_x, shift_y)
示例7: point_from_heading
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def point_from_heading(_x, _y, heading, distance):
"""Calculates a point from a given point, heading and distance.
:param _x: source point x
:param _y: source point y
:param heading: heading in degrees from source point
:param distance: distance from source point
:return: returns a tuple (x, y) of the calculated point
"""
while heading < 0:
heading += 360
heading %= 360
rad_heading = math.radians(heading)
x = _x + math.cos(rad_heading) * distance
y = _y + math.sin(rad_heading) * distance
return x, y
示例8: visualizeBoneProperties
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def visualizeBoneProperties(self, bone, mouse):
color = (0, 0, 0)
x = 10
y = 10
name = bone.name
if bone.mesh:
name += " (%i polygons, %i vertices)" % (len(bone.mesh.indices) // 3, len(bone.mesh.vertices) // 2)
y += self.drawText(name, HEADER_COLOR, (x, y))[1]
y += self.drawText("Translation: (%.1f, %.1f)" % (bone.translation.x, bone.translation.y), color, (x, y))[1]
degrees = tuple([math.degrees(d) for d in (bone.rotation.x, bone.rotation.y, bone.rotation.z)])
y += self.drawText("Rotation: (%.1f, %.1f, %.1f)" % degrees, color, (x, y))[1]
y += self.drawText("Scale: (%.1f, %.1f, %.1f)" % (bone.scale.x, bone.scale.y, bone.scale.z), color, (x, y))[1]
self.drawText("Z-order: %i" % bone.zOrder, color, (x, y))
示例9: slope_filter
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def slope_filter(self, min_slope, max_slope, fuzz):
world = om.MVector(0, 1, 0)
invalid_ids = []
for i, (_, normal, _, _, _) in enumerate(self.point_data):
normal = om.MVector(normal[0], normal[1], normal[2])
angle = math.degrees(normal.angle(world)) + 45 * random.uniform(-fuzz, fuzz)
if angle < min_slope or angle > max_slope:
invalid_ids.append(i)
invalid_ids = sorted(invalid_ids, reverse=True)
[self.point_data.remove(index) for index in invalid_ids]
pass
示例10: get_rotation
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def get_rotation(self, direction, weight, min_rot, max_rot):
""" get rotation from a matrix pointing towards the given direction
slerped by the given weight into the world up vector and added a random
rotation between min and max rotation """
r_x = math.radians(random.uniform(min_rot[0], max_rot[0]))
r_y = math.radians(random.uniform(min_rot[1], max_rot[1]))
r_z = math.radians(random.uniform(min_rot[2], max_rot[2]))
util = om.MScriptUtil()
util.createFromDouble(r_x, r_y, r_z)
rotation_ptr = util.asDoublePtr()
matrix = om.MTransformationMatrix()
matrix.setRotation(rotation_ptr, om.MTransformationMatrix.kXYZ)
world_up = om.MVector(0, 1, 0)
rotation = om.MQuaternion(world_up, direction, weight)
matrix = matrix.asMatrix() * rotation.asMatrix()
rotation = om.MTransformationMatrix(matrix).rotation().asEulerRotation()
return om.MVector(math.degrees(rotation.x),
math.degrees(rotation.y),
math.degrees(rotation.z))
示例11: update
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def update(self, delta_time=0):
"""
If the weather animation is true, the new sun position is calculated w.r.t delta_time
Nothing happens if animation or datetime are None.
Args:
delta_time (float): Time passed since self.datetime [seconds].
"""
if not self.animation or not self.datetime:
return
self.datetime = self.datetime + datetime.timedelta(seconds=delta_time)
self._observer_location.date = self.datetime
self._sun.compute(self._observer_location)
self.carla_weather.sun_altitude_angle = math.degrees(self._sun.alt)
self.carla_weather.sun_azimuth_angle = math.degrees(self._sun.az)
示例12: add_coco_hp
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def add_coco_hp(image, points, color):
for j in range(17):
cv2.circle(image,
(points[j, 0], points[j, 1]), 2, (int(color[0]), int(color[1]), int(color[2])), -1)
stickwidth = 2
cur_canvas = image.copy()
for j, e in enumerate(_kp_connections):
if points[e].min() > 0:
X = [points[e[0], 1], points[e[1], 1]]
Y = [points[e[0], 0], points[e[1], 0]]
mX = np.mean(X)
mY = np.mean(Y)
length = ((X[0] - X[1]) ** 2 + (Y[0] - Y[1]) ** 2) ** 0.5
angle = math.degrees(math.atan2(X[0] - X[1], Y[0] - Y[1]))
polygon = cv2.ellipse2Poly((int(mY),int(mX)), (int(length/2), stickwidth), int(angle), 0, 360, 1)
cv2.fillConvexPoly(cur_canvas, polygon, (int(color[0]), int(color[1]), int(color[2])))
image = cv2.addWeighted(image, 0.5, cur_canvas, 0.5, 0)
return image
示例13: add_coco_hp
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def add_coco_hp(self, points, points_prob, img_id='default'):
points = np.array(points, dtype=np.int32).reshape(self.num_joints, 2)
points_prob = np.array(points_prob, dtype=np.float32).reshape(self.num_joints)
for j in range(self.num_joints):
if points_prob[j]>0.:
cv2.circle(self.imgs[img_id],
(points[j, 0], points[j, 1]), 2, (255,255,255), -1)
stickwidth = 2
cur_canvas = self.imgs[img_id].copy()
for j, e in enumerate(self.edges):
if points_prob[e[0]] > 0. and points_prob[e[1]] > 0.:
X = [points[e[0], 1], points[e[1], 1]]
Y = [points[e[0], 0], points[e[1], 0]]
mX = np.mean(X)
mY = np.mean(Y)
length = ((X[0] - X[1]) ** 2 + (Y[0] - Y[1]) ** 2) ** 0.5
angle = math.degrees(math.atan2(X[0] - X[1], Y[0] - Y[1]))
polygon = cv2.ellipse2Poly((int(mY),int(mX)), (int(length/2), stickwidth), int(angle), 0, 360, 1)
cv2.fillConvexPoly(cur_canvas, polygon, (255, 255, 255))
self.imgs[img_id] = cv2.addWeighted(self.imgs[img_id], 0.8, cur_canvas, 0.2, 0)
示例14: trig
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def trig(a, b=' '):
if is_num(a) and isinstance(b, int):
funcs = [math.sin, math.cos, math.tan,
math.asin, math.acos, math.atan,
math.degrees, math.radians,
math.sinh, math.cosh, math.tanh,
math.asinh, math.acosh, math.atanh]
return funcs[b](a)
if is_lst(a):
width = max(len(row) for row in a)
padded_matrix = [list(row) + (width - len(row)) * [b] for row in a]
transpose = list(zip(*padded_matrix))
if all(isinstance(row, str) for row in a) and isinstance(b, str):
normalizer = ''.join
else:
normalizer = list
norm_trans = [normalizer(padded_row) for padded_row in transpose]
return norm_trans
return unknown_types(trig, ".t", a, b)
示例15: angle_average
# 需要導入模塊: import math [as 別名]
# 或者: from math import degrees [as 別名]
def angle_average(angles: np.ndarray) -> float:
"""
Function to calculate the average value of a list of angles.
Parameters
----------
angles : numpy.ndarray
Parallactic angles (deg).
Returns
-------
float
Average angle (deg).
"""
cmath_rect = sum(cmath.rect(1, math.radians(ang)) for ang in angles)
cmath_phase = cmath.phase(cmath_rect/len(angles))
return math.degrees(cmath_phase)