主题:[讨论]想利用matcom在VC.net中绘制静态三维曲线的疑问
void CChengxu3View::OnInitialUpdate()
{
CView::OnInitialUpdate();
m_h = winaxes(this->m_hWnd);
ksh_start(-50,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);
hold(TM("off"));
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
hold(TM("on"));
axis(TM("equal"));
axis(TM("ij"));
grid(TM("on"));
}
void CChengxu3View::OnCeshi()
{
ClearData(m_hplot);
ksh_start(-200,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);
hold(TM("off"));
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
hold(TM("on"));
axis(TM("equal"));
axis(TM("ij"));
grid(TM("on"));
}
程序启动后是图1,按下测试按钮后是图2。画面上显示不了用红色画的线,经过我拖动画面后,红色线在画面3上如此显示。
ksh_start这个函数是输出x,y,z,ta_x,ta_y,ta_z,index_t这些参数,然后用x,y,z画三维曲线,直接画的话
ksh_start(-50,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
显示图1,
ksh_start(-200,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x1,y1,z1,ta_x1,ta_y1,ta_z1,index_t1);
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
显示图2。
现在我就希望图2里面的红色线和蓝色线同时显示在画面内,我用axis的各种参数试过了,都达不到我这个目的,请问这是什么原因。
而且,还有个视角的问题,如何能比较方便的调节这个视角?
这个ksh_start(-50,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);在.m原始文件中的运行的结果是如图4这样的,角度比较合适观察,而经过matcom转换后在vc.net里面的效果却是如图1的(我并没有改变默认视角)。虽然说这个效果图1比图4强,但是其他参数的图就差多了,而且,三个坐标轴的单位变化量是不一样的,我希望一样,使用了axis(TM("equal"));也没什么效果。
请高手帮忙解答一下。
{
CView::OnInitialUpdate();
m_h = winaxes(this->m_hWnd);
ksh_start(-50,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);
hold(TM("off"));
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
hold(TM("on"));
axis(TM("equal"));
axis(TM("ij"));
grid(TM("on"));
}
void CChengxu3View::OnCeshi()
{
ClearData(m_hplot);
ksh_start(-200,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);
hold(TM("off"));
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
hold(TM("on"));
axis(TM("equal"));
axis(TM("ij"));
grid(TM("on"));
}
程序启动后是图1,按下测试按钮后是图2。画面上显示不了用红色画的线,经过我拖动画面后,红色线在画面3上如此显示。
ksh_start这个函数是输出x,y,z,ta_x,ta_y,ta_z,index_t这些参数,然后用x,y,z画三维曲线,直接画的话
ksh_start(-50,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
显示图1,
ksh_start(-200,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x1,y1,z1,ta_x1,ta_y1,ta_z1,index_t1);
m_hplot=plot3((CL(x),y,z));
m_hplot1=plot3((CL(ta_x(colon(1.0,1.0,index_t-1.0))),ta_y(colon(1.0,1.0,index_t-1.0)),ta_z(colon(1.0,1.0,index_t-1.0)),TM("r")));
显示图2。
现在我就希望图2里面的红色线和蓝色线同时显示在画面内,我用axis的各种参数试过了,都达不到我这个目的,请问这是什么原因。
而且,还有个视角的问题,如何能比较方便的调节这个视角?
这个ksh_start(-50,4,2,1,2,1,1,1,2,2,0,60,8,3000,-90,0.1,400,1500,i_o,x,y,z,ta_x,ta_y,ta_z,index_t);在.m原始文件中的运行的结果是如图4这样的,角度比较合适观察,而经过matcom转换后在vc.net里面的效果却是如图1的(我并没有改变默认视角)。虽然说这个效果图1比图4强,但是其他参数的图就差多了,而且,三个坐标轴的单位变化量是不一样的,我希望一样,使用了axis(TM("equal"));也没什么效果。
请高手帮忙解答一下。