MCPcopy Index your code
hub / github.com/PyQt5/PyQt / __init__

Method __init__

QtDataVisualization/MagneticOfSun.py:65–127  ·  view source on GitHub ↗
(self, scatter)

Source from the content-addressed store, hash-verified

63 animationFrames = 30.0 # 动画帧数
64
65 def __init__(self, scatter):
66 super(ScatterDataModifier, self).__init__()
67
68 mesh_dir = QFileInfo(__file__).absolutePath() + '/Data/mesh'
69
70 self.m_graph = scatter # Q3DScatter 对象实例
71 self.m_rotationTimer = QTimer()
72 self.m_fieldLines = 12 # 初始磁场线数量
73 self.m_arrowsPerLine = 16 # 初始箭头数
74 self.m_magneticField = QScatter3DSeries() # 磁场线三维散点图
75 self.m_sun = QScatter3DSeries() # 太阳三维散点图
76 self.m_angleOffset = 0.0 # 角度偏移
77 self.m_angleStep = self.doublePi / self.m_arrowsPerLine / self.animationFrames
78
79 # 设置阴影质量
80 self.m_graph.setShadowQuality(QAbstract3DGraph.ShadowQualityNone)
81 # 设置当前场景中的激活的相机预设值
82 self.m_graph.scene().activeCamera().setCameraPreset(
83 Q3DCamera.CameraPresetFront)
84
85 # Magnetic field lines use custom narrow arrow.
86 # 磁力线使用自定义窄箭头。
87 self.m_magneticField.setItemSize(0.2)
88 self.m_magneticField.setMesh(QAbstract3DSeries.MeshUserDefined)
89 self.m_magneticField.setUserDefinedMesh(mesh_dir + '/narrowarrow.obj')
90 # 设置渐变颜色
91 fieldGradient = QLinearGradient(0, 0, 16, 1024)
92 fieldGradient.setColorAt(0.0, Qt.black)
93 fieldGradient.setColorAt(1.0, Qt.white)
94 self.m_magneticField.setBaseGradient(fieldGradient)
95 self.m_magneticField.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
96
97 # For 'sun' we use a custom large sphere.
98 # 使用一个自定义的球体代表太阳
99 self.m_sun.setItemSize(0.2)
100 self.m_sun.setName("Sun")
101 self.m_sun.setItemLabelFormat("@seriesName")
102 self.m_sun.setMesh(QAbstract3DSeries.MeshUserDefined)
103 self.m_sun.setUserDefinedMesh(mesh_dir + '/largesphere.obj')
104 self.m_sun.setBaseColor(QColor(0xff, 0xbb, 0x00))
105 self.m_sun.dataProxy().addItem(QScatterDataItem(QVector3D()))
106
107 self.m_graph.addSeries(self.m_magneticField)
108 self.m_graph.addSeries(self.m_sun)
109
110 # Configure the axes according to the data.
111 # 设置x轴的范围值
112 self.m_graph.axisX().setRange(-self.horizontalRange,
113 self.horizontalRange)
114 # 设置y轴的范围值
115 self.m_graph.axisY().setRange(-self.verticalRange, self.verticalRange)
116 # 设置z轴的范围值
117 self.m_graph.axisZ().setRange(-self.horizontalRange,
118 self.horizontalRange)
119 # x和z轴上的段数
120 # 这表明绘制了多少标签。要绘制的网格线的数量使用公式计算:segments * subsegments + 1。预设默认值为5。该值不能低于1。
121 self.m_graph.axisX().setSegmentCount(self.horizontalRange)
122 self.m_graph.axisZ().setSegmentCount(self.horizontalRange)

Callers

nothing calls this directly

Calls 4

toggleRotationMethod · 0.95
generateDataMethod · 0.95
addItemMethod · 0.45
setRangeMethod · 0.45

Tested by

no test coverage detected