本文整理汇总了Python中utility.coerce3dvector函数的典型用法代码示例。如果您正苦于以下问题:Python coerce3dvector函数的具体用法?Python coerce3dvector怎么用?Python coerce3dvector使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了coerce3dvector函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PlaneFromFrame
def PlaneFromFrame(origin, x_axis, y_axis):
"""Construct a plane from a point, and two vectors in the plane.
Parameters:
origin = A 3D point identifying the origin of the plane.
x_axis = A non-zero 3D vector in the plane that determines the X axis
direction.
y_axis = A non-zero 3D vector not parallel to x_axis that is used
to determine the Y axis direction. Note, y_axis does not
have to be perpendicular to x_axis.
Returns:
The plane if successful.
Example:
import rhinoscriptsyntax as rs
origin = rs.GetPoint("CPlane origin")
if origin:
xaxis = (1,0,0)
yaxis = (0,0,1)
plane = rs.PlaneFromFrame( origin, xaxis, yaxis )
rs.ViewCPlane(None, plane)
See Also:
MovePlane
PlaneFromNormal
PlaneFromPoints
RotatePlane
"""
origin = rhutil.coerce3dpoint(origin, True)
x_axis = rhutil.coerce3dvector(x_axis, True)
y_axis = rhutil.coerce3dvector(y_axis, True)
return Rhino.Geometry.Plane(origin, x_axis, y_axis)
示例2: VectorAngle
def VectorAngle(vector1, vector2):
"""Returns the angle, in degrees, between two 3-D vectors
Parameters:
vector1 = List of 3 numbers, Point3d, or Vector3d. The first 3-D vector.
vector2 = List of 3 numbers, Point3d, or Vector3d. The second 3-D vector.
Returns:
The angle in degrees if successfull, otherwise None
Example:
import rhinoscriptsyntax as rs
s0 = rs.GetObject("Surface 0", rs.filter.surface)
s1 = rs.GetObject("Surface 1", rs.filter.surface)
du0 = rs.SurfaceDomain(s0, 0)
dv0 = rs.SurfaceDomain(s0, 1)
du1 = rs.SurfaceDomain(s1, 0)
dv1 = rs.SurfaceDomain(s1, 1)
n0 = rs.SurfaceNormal(s0, (du0[0], dv0[0]))
n1 = rs.SurfaceNormal(s1, (du1[0], dv1[0]))
print rs.VectorAngle(n0, n1)
print rs.VectorAngle(n0, rs.VectorReverse(n1))
See Also:
Angle
Angle2
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
vector1 = Rhino.Geometry.Vector3d(vector1.X, vector1.Y, vector1.Z)
vector2 = Rhino.Geometry.Vector3d(vector2.X, vector2.Y, vector2.Z)
if not vector1.Unitize() or not vector2.Unitize():
raise ValueError("unable to unitize vector")
dot = vector1 * vector2
dot = rhutil.clamp(-1,1,dot)
radians = math.acos(dot)
return math.degrees(radians)
示例3: XformShear
def XformShear(plane, x, y, z):
"""Returns a shear transformation matrix
Parameters:
plane = plane[0] is the fixed point
x,y,z = each axis scale factor
Returns:
The 4x4 transformation matrix on success
Example:
import rhinoscriptsyntax as rs
objects = rs.GetObjects("Select objects to shear")
if objects:
cplane = rs.ViewCPlane()
xform = rs.XformShear(cplane, (1,1,0), (-1,1,0), (0,0,1))
rs.TransformObjects(objects, xform, True)
See Also:
XformMirror
XformPlanarProjection
XformRotation
XformScale
XformTranslation
"""
plane = rhutil.coerceplane(plane, True)
x = rhutil.coerce3dvector(x, True)
y = rhutil.coerce3dvector(y, True)
z = rhutil.coerce3dvector(z, True)
return Rhino.Geometry.Transform.Shear(plane,x,y,z)
示例4: PlaneFromNormal
def PlaneFromNormal(origin, normal, xaxis=None):
"""Creates a plane from an origin point and a normal direction vector.
Parameters:
origin = A 3D point identifying the origin of the plane.
normal = A 3D vector identifying the normal direction of the plane.
xaxis[opt] = optional vector defining the plane's x-axis
Returns:
The plane if successful.
Example:
import rhinoscriptsyntax as rs
origin = rs.GetPoint("CPlane origin")
if origin:
direction = rs.GetPoint("CPlane direction")
if direction:
normal = direction - origin
normal = rs.VectorUnitize(normal)
rs.ViewCPlane( None, rs.PlaneFromNormal(origin, normal) )
See Also:
MovePlane
PlaneFromFrame
PlaneFromPoints
RotatePlane
"""
origin = rhutil.coerce3dpoint(origin, True)
normal = rhutil.coerce3dvector(normal, True)
rc = Rhino.Geometry.Plane(origin, normal)
if xaxis:
xaxis = rhutil.coerce3dvector(xaxis, True)
xaxis = Rhino.Geometry.Vector3d(xaxis)#prevent original xaxis parameter from being unitized too
xaxis.Unitize()
yaxis = Rhino.Geometry.Vector3d.CrossProduct(rc.Normal, xaxis)
rc = Rhino.Geometry.Plane(origin, xaxis, yaxis)
return rc
示例5: IsVectorPerpendicularTo
def IsVectorPerpendicularTo(vector1, vector2):
"""Compares two vectors to see if they are perpendicular
Parameters:
vector1, vector2 = the vectors to compare
Returns:
True if vectors are perpendicular, otherwise False
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
return vector1.IsPerpendicularTo(vector2)
示例6: VectorCrossProduct
def VectorCrossProduct(vector1, vector2):
"""Calculates the cross product of two 3D vectors
Parameters:
vector1, vector2 = the vectors to perform cross product on
Returns:
the resulting vector if successful
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
return Rhino.Geometry.Vector3d.CrossProduct( vector1, vector2 )
示例7: VectorDotProduct
def VectorDotProduct(vector1, vector2):
"""Calculates the dot product of two 3D vectors
Parameters:
vector1, vector2 = the vectors to perform the dot product on
Returns:
the resulting dot product if successful
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
return vector1*vector2
示例8: VectorAdd
def VectorAdd(vector1, vector2):
"""Adds two 3D vectors
Parameters:
vector1, vector2 = the vectors to add
Returns:
the resulting 3D vector if successful
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
return vector1+vector2
示例9: VectorSubtract
def VectorSubtract(vector1, vector2):
"""Subtracts two 3D vectors
Parameters:
vector1 = the vector to subtract from
vector2 = the vector to subtract
Returns:
the resulting 3D vector
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
return vector1-vector2
示例10: IsVectorParallelTo
def IsVectorParallelTo(vector1, vector2):
"""Compares two vectors to see if they are parallel
Parameters:
vector1, vector2 = the vectors to compare
Returns:
-1 = the vectors are anti-parallel
0 = the vectors are not parallel
1 = the vectors are parallel
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
return vector1.IsParallelTo(vector2)
示例11: VectorAngle
def VectorAngle(vector1, vector2):
"Returns the angle, in degrees, between two 3-D vectors"
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
vector1 = Rhino.Geometry.Vector3d(vector1.X, vector1.Y, vector1.Z)
vector2 = Rhino.Geometry.Vector3d(vector2.X, vector2.Y, vector2.Z)
if not vector1.Unitize() or not vector2.Unitize():
raise ValueError("unable to unitize vector")
dot = vector1 * vector2
dot = rhutil.clamp(-1,1,dot)
radians = math.acos(dot)
return math.degrees(radians)
示例12: VectorCompare
def VectorCompare(vector1, vector2):
"""Compares two 3D vectors
Parameters:
vector1, vector2 = the vectors to compare
Returns:
-1 if vector1 is less than vector2
0 if vector1 is equal to vector2
1 if vector1 is greater than vector2
"""
vector1 = rhutil.coerce3dvector(vector1, True)
vector2 = rhutil.coerce3dvector(vector2, True)
return vector1.CompareTo(vector2)
示例13: XformShear
def XformShear(plane, x, y, z):
"""Returns a shear transformation matrix
Parameters:
plane = plane[0] is the fixed point
x,y,z = each axis scale factor
Returns:
The 4x4 transformation matrix on success
"""
plane = rhutil.coerceplane(plane, True)
x = rhutil.coerce3dvector(x, True)
y = rhutil.coerce3dvector(y, True)
z = rhutil.coerce3dvector(z, True)
return Rhino.Geometry.Transform.Shear(plane,x,y,z)
示例14: VectorRotate
def VectorRotate(vector, angle_degrees, axis):
"""Rotates a 3D vector
Parameters:
vector = the vector to rotate
angle_degrees = rotation angle
axis = axis of rotation
Returns:
rotated vector on success
"""
vector = rhutil.coerce3dvector(vector, True)
axis = rhutil.coerce3dvector(axis, True)
angle_radians = Rhino.RhinoMath.ToRadians(angle_degrees)
rc = Rhino.Geometry.Vector3d(vector.X, vector.Y, vector.Z)
if rc.Rotate(angle_radians, axis): return rc
示例15: PlaneFromFrame
def PlaneFromFrame(origin, x_axis, y_axis):
"""Construct a plane from a point, and two vectors in the plane.
Parameters:
origin = A 3D point identifying the origin of the plane.
x_axis = A non-zero 3D vector in the plane that determines the X axis
direction.
y_axis = A non-zero 3D vector not parallel to x_axis that is used
to determine the Y axis direction. Note, y_axis does not
have to be perpendicular to x_axis.
Returns:
The plane if successful.
"""
origin = rhutil.coerce3dpoint(origin, True)
x_axis = rhutil.coerce3dvector(x_axis, True)
y_axis = rhutil.coerce3dvector(y_axis, True)
return Rhino.Geometry.Plane(origin, x_axis, y_axis)