pythonocc 扩展数据_如何在pythonOCC中使用样条函数?
您只需將代碼修改為C++(而不是C)BOOST_PYTHON_MODULE(Spline)
{
import_array();
boost::python::numeric::array::set_module_and_type("numpy", "ndarray");
class_("Spline", init<>())
.def("spline", &Spline::spline)
;
}
因此在Python中可以使用:
^{pr2}$
Cpp等級(jí):
^{3}$
然后在boost::python::list Spline::spline(numeric::array& x_val, numeric::array& y_val, double p)函數(shù)中得到:PyArrayObject* x_pyArr = (PyArrayObject*)PyArray_FROM_O(x_val.ptr());
PyArrayObject* y_pyArr = (PyArrayObject*)PyArray_FROM_O(y_val.ptr());
int size = *(x_pyArr->dimensions), i , j;
double* data_x = (double*)x_pyArr->data;
double* data_y = (double*)y_pyArr->data;
double h[NUMBER_OF_SAMPLES], a, b, c, d, s[NUMBER_OF_SAMPLES] = { 0 }, F[NUMBER_OF_SAMPLES], f[NUMBER_OF_SAMPLES], x[NUMBER_OF_SAMPLES], m[NUMBER_OF_SAMPLES][NUMBER_OF_SAMPLES] = { 0 }, temp;
for (int i = 0; i < size; i++)
{
x[i] = *(data_x + i);
f[i] = *(data_y + i);
}
依此類(lèi)推。我在Spline::spline函數(shù)中返回一個(gè)python列表:boost::python::list return_val;
// ....
return_val.append(sum);
return_val.append(result);
return return_val;
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的pythonocc 扩展数据_如何在pythonOCC中使用样条函数?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python输出国际象棋棋盘_pytho
- 下一篇: aidl使用_Android进阶之AID