本文整理汇总了Python中PyQt5.QtGui.QVector3D方法的典型用法代码示例。如果您正苦于以下问题:Python QtGui.QVector3D方法的具体用法?Python QtGui.QVector3D怎么用?Python QtGui.QVector3D使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtGui
的用法示例。
在下文中一共展示了QtGui.QVector3D方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _setUniformValueDirect
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QVector3D [as 别名]
def _setUniformValueDirect(self, uniform, value):
if type(value) is Vector:
self._shader_program.setUniformValue(uniform, QVector3D(value.x, value.y, value.z))
elif type(value) is Matrix:
self._shader_program.setUniformValue(uniform, self._matrixToQMatrix4x4(value))
elif type(value) is Color:
self._shader_program.setUniformValue(uniform,
QColor(value.r * 255, value.g * 255, value.b * 255, value.a * 255))
elif type(value) is list and type(value[0]) is list and len(value[0]) == 4:
self._shader_program.setUniformValue(uniform, self._matrixToQMatrix4x4(Matrix(value)))
elif type(value) is list and len(value) == 2:
self._shader_program.setUniformValue(uniform, QVector2D(value[0], value[1]))
elif type(value) is list and len(value) == 3:
self._shader_program.setUniformValue(uniform, QVector3D(value[0], value[1], value[2]))
elif type(value) is list and len(value) == 4:
self._shader_program.setUniformValue(uniform, QVector4D(value[0], value[1], value[2], value[3]))
elif type(value) is list and type(value[0]) is list and len(value[0]) == 2:
self._shader_program.setUniformValueArray(uniform, [QVector2D(i[0], i[1]) for i in value])
else:
self._shader_program.setUniformValue(uniform, value)
示例2: setStart
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QVector3D [as 别名]
def setStart(self, start):
self.setStartValue(QVector3D(start.x, start.y, start.z))
示例3: setTarget
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QVector3D [as 别名]
def setTarget(self, target):
self.setEndValue(QVector3D(target.x, target.y, target.z))
示例4: qcolor_to_glvec
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QVector3D [as 别名]
def qcolor_to_glvec(self, qcolor):
return qtg.QVector3D(
qcolor.red() / 255,
qcolor.green() / 255,
qcolor.blue() / 255
)
示例5: generateData
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QVector3D [as 别名]
def generateData(self):
# 生成模拟数据
magneticFieldArray = []
for i in range(self.m_fieldLines):
horizontalAngle = (self.doublePi * i) / self.m_fieldLines
xCenter = self.ellipse_a * math.cos(horizontalAngle)
zCenter = self.ellipse_a * math.sin(horizontalAngle)
# Rotate - arrow is always tangential to the origin.
# 旋转-箭头始终与原点相切。
yRotation = QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0,
horizontalAngle * self.radiansToDegrees)
for j in range(self.m_arrowsPerLine):
# Calculate the point on the ellipse centered on the origin and
# 计算椭圆上以原点为中心的点
# parallel to the x-axis.
# 平行于X轴。
verticalAngle = ((self.doublePi * j) / self.m_arrowsPerLine) + self.m_angleOffset
xUnrotated = self.ellipse_a * math.cos(verticalAngle)
y = self.ellipse_b * math.sin(verticalAngle)
# Rotate the ellipse around the y-axis.
# 围绕Y轴旋转椭圆。
xRotated = xUnrotated * math.cos(horizontalAngle)
zRotated = xUnrotated * math.sin(horizontalAngle)
# Add the offset.
# 添加偏移量。
x = xCenter + xRotated
z = zCenter + zRotated
zRotation = QQuaternion.fromAxisAndAngle(0.0, 0.0, 1.0,
verticalAngle * self.radiansToDegrees)
totalRotation = yRotation * zRotation
itm = QScatterDataItem(QVector3D(x, y, z), totalRotation)
magneticFieldArray.append(itm)
if self.m_graph.selectedSeries() is self.m_magneticField:
self.m_graph.clearSelection()
self.m_magneticField.dataProxy().resetArray(magneticFieldArray)