当前位置: 首页>>代码示例>>Python>>正文


Python mathutils.Euler方法代码示例

本文整理汇总了Python中mathutils.Euler方法的典型用法代码示例。如果您正苦于以下问题:Python mathutils.Euler方法的具体用法?Python mathutils.Euler怎么用?Python mathutils.Euler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在mathutils的用法示例。


在下文中一共展示了mathutils.Euler方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: ai_properties

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def ai_properties(self):
        scale = self.geometry_matrix_scale
        matrix = Matrix([
            [scale.x, 0, 0],
            [0, scale.y, 0],
            [0, 0, scale.z]
        ])
        matrix.rotate(Euler(self.geometry_matrix_rotation))
        matrix = matrix.to_4x4()
        matrix.translation = (self.geometry_matrix_translation)
        return {
            "format": ('STRING', self.format),
            "resolution": ('STRING', self.resolution),
            "portal_mode": ('STRING', self.portal_mode),
            "matrix": ('MATRIX', matrix),
            "camera": ('BOOL', self.camera),
            "diffuse": ('BOOL', self.diffuse),
            "specular": ('BOOL', self.specular),
            "sss": ('BOOL', self.sss),
            "volume": ('BOOL', self.volume),
            "transmission": ('BOOL', self.transmission)
        } 
开发者ID:griffin-copperfield,项目名称:Arnold-For-Blender,代码行数:24,代码来源:nodes.py

示例2: reconstruct_rectangle

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def reconstruct_rectangle(pa, pb, pc, pd, scale, focal):
    # Calculate the coordinates of the rectangle in 3d
    coords = get_lambda_d(pa, pb, pc, pd, scale, focal)
    # Calculate the transformation of the rectangle
    trafo = get_transformation(coords[0], coords[1], coords[2], coords[3])
    # Reconstruct the rotation angles of the transformation
    angles = get_rot_angles(trafo[0], trafo[1], trafo[2])
    xyz_matrix = mathutils.Euler((angles[0], angles[1], angles[2]), "XYZ")
    # Reconstruct the camera position and the corners of the rectangle in 3d such that it lies on the xy-plane
    tr = trafo[-1]
    cam_pos = apply_transformation([mathutils.Vector((0.0, 0.0, 0.0))], tr, xyz_matrix)[0]
    corners = apply_transformation(coords, tr, xyz_matrix)
    # Printout for debugging
    print("Focal length:", focal)
    print("Camera rotation:", degrees(angles[0]), degrees(angles[1]), degrees(angles[2]))
    print("Camera position:", cam_pos)
    length = (coords[0] - coords[1]).length
    width = (coords[0] - coords[3]).length
    size = max(length, width)
    print("Rectangle length:", length)
    print("Rectangle width:", width)
    print("Rectangle corners:", corners)
    return (cam_pos, xyz_matrix, corners, size) 
开发者ID:mrossini-ethz,项目名称:camera-calibration-pvr,代码行数:25,代码来源:camera-calibration-pvr.py

示例3: fix_env_rotations

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def fix_env_rotations():
    try:
        for world in bpy.data.worlds:
            nodes = world.node_tree.nodes
            links = world.node_tree.links
            mapping = find_existing_mapping(nodes)
            env = find_env_texture(nodes)

            if mapping == False and env != False:

                texture_coordinates = nodes.new("ShaderNodeTexCoord")
                texture_coordinates.location = (-800, 145)
                mapper = nodes.new("ShaderNodeMapping")
                mapper.location = (-625, 145)

                mapper.rotation = Euler((0.0, 0.0, 1.5707963705062866), 'XYZ')

                links.new(mapper.inputs[0],
                          texture_coordinates.outputs["Object"])
                links.new(env.inputs[0], mapper.outputs[0])

    except Exception as e:
        print(e) 
开发者ID:Menithal,项目名称:Blender-Metaverse-Addon,代码行数:25,代码来源:materials.py

示例4: text

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def text(self, en, scene, name):
        """
        en: dxf entity
        name: ignored; exists to make separate and merged objects methods universally callable from _call_types()
        Returns a new single line text object.
        """
        if self.import_text:
            name = en.text[:8]
            d = bpy.data.curves.new(name, "FONT")
            d.body = en.plain_text()
            d.size = en.height
            o = bpy.data.objects.new(name, d)
            o.rotation_euler = Euler((0, 0, radians(en.rotation)), 'XYZ')
            basepoint = self.proj(en.basepoint) if hasattr(en, "basepoint") else self.proj((0, 0, 0))
            o.location = self.proj((en.insert)) + basepoint
            if hasattr(en, "thickness"):
                et = en.thickness / 2
                d.extrude = abs(et)
                if et > 0:
                    o.location.z += et
                elif et < 0:
                    o.location.z -= et
            return o 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:25,代码来源:do.py

示例5: draw_arc12

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def draw_arc12(x, y, radius, start_angle, end_angle, subdivide):  # いずれ削除
    # 十二時から時計回りに描画
    v = Vector([0, 1, 0])
    e = Euler((0, 0, -start_angle))
    m = e.to_matrix()
    v = v * m
    if end_angle >= start_angle:
        a = (end_angle - start_angle) / (subdivide + 1)
    else:
        a = (end_angle + math.pi * 2 - start_angle) / (subdivide + 1)
    e = Euler((0, 0, -a))
    m = e.to_matrix()

    bgl.glBegin(bgl.GL_LINE_STRIP)
    for i in range(subdivide + 2):
        v1 = v * radius
        bgl.glVertex2f(x + v1[0], y + v1[1])
        v = v * m
    bgl.glEnd() 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:21,代码来源:gl.py

示例6: list_to_mathutils

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def list_to_mathutils(values: typing.List[float], data_path: str) -> typing.Union[Vector, Quaternion, Euler]:
    """Transform a list to blender py object."""
    target = get_target_property_name(data_path)

    if target == 'delta_location':
        return Vector(values)  # TODO Should be Vector(values) - Vector(something)?
    elif target == 'delta_rotation_euler':
        return Euler(values).to_quaternion()  # TODO Should be multiply(Euler(values).to_quaternion(), something)?
    elif target == 'location':
        return Vector(values)
    elif target == 'rotation_axis_angle':
        angle = values[0]
        axis = values[1:]
        return Quaternion(axis, math.radians(angle))
    elif target == 'rotation_euler':
        return Euler(values).to_quaternion()
    elif target == 'rotation_quaternion':
        return Quaternion(values)
    elif target == 'scale':
        return Vector(values)
    elif target == 'value':
        return Vector(values)

    return values 
开发者ID:KhronosGroup,项目名称:glTF-Blender-IO,代码行数:26,代码来源:gltf2_blender_math.py

示例7: build

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def build(self, buildRequest):
        t = time.time()
        rotDiff = random.uniform(self.settings["minRandRot"],
                                 self.settings["maxRandRot"])
        eul = mathutils.Euler(buildRequest.rot, 'XYZ')
        eul.rotate_axis('Z', math.radians(rotDiff))

        scaleDiff = random.uniform(self.settings["minRandSz"],
                                   self.settings["maxRandSz"])
        newScale = buildRequest.scale * scaleDiff

        buildRequest.rot = Vector(eul)
        buildRequest.scale = newScale
        cm_timings.placement["TemplateRANDOM"] += time.time() - t
        cm_timings.placementNum["TemplateRANDOM"] += 1
        self.inputs["Template"].build(buildRequest) 
开发者ID:johnroper100,项目名称:CrowdMaster,代码行数:18,代码来源:cm_templates.py

示例8: transformToWorld

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def transformToWorld(vec:Vector, mat:Matrix, junk_bme:bmesh=None):
    """ transfrom vector to world space from 'mat' matrix local space """
    # decompose matrix
    loc = mat.to_translation()
    rot = mat.to_euler()
    scale = mat.to_scale()[0]
    # apply rotation
    if rot != Euler((0, 0, 0), "XYZ"):
        junk_bme = bmesh.new() if junk_bme is None else junk_bme
        v1 = junk_bme.verts.new(vec)
        bmesh.ops.rotate(junk_bme, verts=[v1], cent=-loc, matrix=Matrix.Rotation(rot.x, 3, 'X'))
        bmesh.ops.rotate(junk_bme, verts=[v1], cent=-loc, matrix=Matrix.Rotation(rot.y, 3, 'Y'))
        bmesh.ops.rotate(junk_bme, verts=[v1], cent=-loc, matrix=Matrix.Rotation(rot.z, 3, 'Z'))
        vec = v1.co
    # apply scale
    vec = vec * scale
    # apply translation
    vec += loc
    return vec 
开发者ID:patmo141,项目名称:object_alignment,代码行数:21,代码来源:transform.py

示例9: transformToLocal

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def transformToLocal(vec:Vector, mat:Matrix, junk_bme:bmesh=None):
    """ transfrom vector to local space of 'mat' matrix """
    # decompose matrix
    loc = mat.to_translation()
    rot = mat.to_euler()
    scale = mat.to_scale()[0]
    # apply scale
    vec = vec / scale
    # apply rotation
    if rot != Euler((0, 0, 0), "XYZ"):
        junk_bme = bmesh.new() if junk_bme is None else junk_bme
        v1 = junk_bme.verts.new(vec)
        bmesh.ops.rotate(junk_bme, verts=[v1], cent=loc, matrix=Matrix.Rotation(-rot.z, 3, 'Z'))
        bmesh.ops.rotate(junk_bme, verts=[v1], cent=loc, matrix=Matrix.Rotation(-rot.y, 3, 'Y'))
        bmesh.ops.rotate(junk_bme, verts=[v1], cent=loc, matrix=Matrix.Rotation(-rot.x, 3, 'X'))
        vec = v1.co
    return vec 
开发者ID:patmo141,项目名称:object_alignment,代码行数:19,代码来源:transform.py

示例10: rotate_brain

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def rotate_brain(dx=None, dy=None, dz=None, keep_rotating=False, save_image=False, render_image=False):
    dx = bpy.context.scene.rotate_dx if dx is None else dx
    dy = bpy.context.scene.rotate_dy if dy is None else dy
    dz = bpy.context.scene.rotate_dz if dz is None else dz
    ShowHideObjectsPanel.rotate_dxyz += np.array([dx, dy, dz])
    bpy.context.scene.rotate_dx, bpy.context.scene.rotate_dy, bpy.context.scene.rotate_dz = dx, dy, dz
    rv3d = mu.get_view3d_region()
    rv3d.view_rotation.rotate(mathutils.Euler((math.radians(d) for d in (dx, dy, dz))))
    if bpy.context.scene.rotate_and_save or save_image:
        _addon().save_image('rotation', view_selected=bpy.context.scene.save_selected_view)
    # if bpy.context.scene.rotate_and_render or render_image:
    #     _addon().render_image('rotation')
    if bpy.context.scene.rotate_360 and any([ShowHideObjectsPanel.rotate_dxyz[k] >= 360 for k in range(3)]):
        stop_rotating()
    elif keep_rotating:
        start_rotating() 
开发者ID:pelednoam,项目名称:mmvt,代码行数:18,代码来源:show_hide_panel.py

示例11: animate_convert_rotation_euler

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def animate_convert_rotation_euler(euler, rotation_mode):
    """
    Converts an euler angle to a quaternion rotation.
    """
    rotation = mathutils.Euler((euler[0], euler[1], euler[2]), rotation_mode).to_quaternion()

    return [rotation.x, rotation.y, rotation.z, rotation.w] 
开发者ID:Soft8Soft,项目名称:verge3d-blender-addon,代码行数:9,代码来源:gltf2_animate.py

示例12: clear_pose

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def clear_pose(obj):
    if obj.type == "ARMATURE":
        for bone in obj.pose.bones:
            bone.scale = Vector((1,1,1))
            bone.location = Vector((0,0,0))
            bone.rotation_euler = Euler((0,0,0),"XYZ")
            bone.rotation_quaternion = Euler((0,0,0),"XYZ").to_quaternion()
    elif obj.type == "MESH":
        obj.coa_sprite_frame = 0
        obj.coa_alpha = 1.0
        obj.coa_modulate_color = (1.0,1.0,1.0)
        #obj["coa_slot_index"] = max(0,len(obj.coa_slot)-1)
        #obj["coa_slot_index"] = obj.coa_slot_reset_index
        obj.coa_slot_index = 0 
开发者ID:ndee85,项目名称:coa_tools,代码行数:16,代码来源:functions.py

示例13: get_rot_angles

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def get_rot_angles(ex, ey, ez):
    """Get the x- and y-rotation from the ez unit vector"""
    rx = atan2(ez[1], ez[2])
    rx_matrix = mathutils.Euler((rx, 0.0, 0.0), "XYZ")
    # Rotate the ez vector by the previously found angle
    ez.rotate(rx_matrix)
    # Negative value because of right handed rotation
    ry = - atan2(ez[0], ez[2])
    # Rotate the ex vector by the previously found angles
    rxy_matrix = mathutils.Euler((rx, ry, 0.0), "XYZ")
    ex.rotate(rxy_matrix)
    # Negative value because of right handed rotation
    rz = - atan2(ex[1], ex[0])
    return [rx, ry, rz] 
开发者ID:mrossini-ethz,项目名称:camera-calibration-pvr,代码行数:16,代码来源:camera-calibration-pvr.py

示例14: set_bevel_spline

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def set_bevel_spline(self, spline):
		import math, mathutils
		r = self.radius
		vec = mathutils.Vector((0, r, 0))
		min_rad = -math.radians(360 / len(spline.points))
		for index, point in enumerate(spline.points):
			eul = mathutils.Euler((0, 0, min_rad * index), 'XYZ')
			now_vec = vec.copy()
			now_vec.rotate(eul)
			now_vec = self.get_random_point(now_vec)
			point.co = list(now_vec[:]) + [1] 
开发者ID:CM3D2user,项目名称:Blender-CM3D2-Converter,代码行数:13,代码来源:misc_INFO_MT_curve_add.py

示例15: correct_scale_rotation

# 需要导入模块: import mathutils [as 别名]
# 或者: from mathutils import Euler [as 别名]
def correct_scale_rotation(obj, rotation):
    reset_scale_rotation(obj)
    obj.scale = Vector((100.0, 100.0, 100.0))
    print(obj.scale)
    str_angle = -90 * pi/180
    if rotation:
        obj.rotation_euler = Euler((str_angle, 0, 0), "XYZ")

    reset_scale_rotation(obj)

    obj.scale = Vector((0.01, 0.01, 0.01))
    if rotation:
        obj.rotation_euler = Euler((-str_angle, 0, 0), "XYZ") 
开发者ID:Menithal,项目名称:Blender-Metaverse-Addon,代码行数:15,代码来源:bones_builder.py


注:本文中的mathutils.Euler方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。