(self, scatter)
| 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) |
nothing calls this directly
no test coverage detected