Python PySide2 Qt曲面示例 我想在PySID2中重新实现Qt C++的例子(q3dFurm),但是 QSurfaceDataArray < /C> >代码> qSurdieAtAROW不可用。 void SurfaceGraph::fillSqrtSinProxy() { float stepX = (sampleMax - sampleMin) / float(sampleCountX - 1); float stepZ = (sampleMax - sampleMin) / float(sampleCountZ - 1); QSurfaceDataArray *dataArray = new QSurfaceDataArray; dataArray->reserve(sampleCountZ); for (int i = 0 ; i < sampleCountZ ; i++) { QSurfaceDataRow *newRow = new QSurfaceDataRow(sampleCountX); // Keep values within range bounds, since just adding step can cause minor drift due // to the rounding errors. float z = qMin(sampleMax, (i * stepZ + sampleMin)); int index = 0; for (int j = 0; j < sampleCountX; j++) { float x = qMin(sampleMax, (j * stepX + sampleMin)); float R = qSqrt(z * z + x * x) + 0.01f; float y = (qSin(R) / R + 0.24f) * 1.61f; (*newRow)[index++].setPosition(QVector3D(x, y, z)); } *dataArray << newRow; } m_sqrtSinProxy->resetArray(dataArray); }
Python PySide2 Qt曲面示例 我想在PySID2中重新实现Qt C++的例子(q3dFurm),但是 QSurfaceDataArray < /C> >代码> qSurdieAtAROW不可用。 void SurfaceGraph::fillSqrtSinProxy() { float stepX = (sampleMax - sampleMin) / float(sampleCountX - 1); float stepZ = (sampleMax - sampleMin) / float(sampleCountZ - 1); QSurfaceDataArray *dataArray = new QSurfaceDataArray; dataArray->reserve(sampleCountZ); for (int i = 0 ; i < sampleCountZ ; i++) { QSurfaceDataRow *newRow = new QSurfaceDataRow(sampleCountX); // Keep values within range bounds, since just adding step can cause minor drift due // to the rounding errors. float z = qMin(sampleMax, (i * stepZ + sampleMin)); int index = 0; for (int j = 0; j < sampleCountX; j++) { float x = qMin(sampleMax, (j * stepX + sampleMin)); float R = qSqrt(z * z + x * x) + 0.01f; float y = (qSin(R) / R + 0.24f) * 1.61f; (*newRow)[index++].setPosition(QVector3D(x, y, z)); } *dataArray << newRow; } m_sqrtSinProxy->resetArray(dataArray); },python,c++,pyside2,Python,C++,Pyside2,QSurfaceDataItem可用,但如果没有QVector,我无法将对象传递到QSurfaceDataProxy,您可以尝试使用PyQt5而不是PySide2。在PyQt5中,您可以使用列表列表而不是QSurfaeDataArray,但这在PySide2中似乎不起作用。您可以尝试使用PyQt5而不是PySide2。在PyQt5中,您可以使用列表列表而不是QSurfaeDataArray,但这在PySide2中似乎不起作用。 from PySide2.QtDataVisualization i
QSurfaceDataItem
可用,但如果没有QVector
,我无法将对象传递到QSurfaceDataProxy
,您可以尝试使用PyQt5而不是PySide2。在PyQt5中,您可以使用列表列表而不是QSurfaeDataArray
,但这在PySide2中似乎不起作用。您可以尝试使用PyQt5而不是PySide2。在PyQt5中,您可以使用列表列表而不是QSurfaeDataArray
,但这在PySide2中似乎不起作用。
from PySide2.QtDataVisualization import QtDataVisualization as QDV
data_item = QDV.QSurfaceDataItem()
data_item.setPosition(QVector3D(x, y, z))