数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 5903|回复: 10

[求助]编写的原函数库里面没有的函数怎么调用不上啊?

[复制链接]
发表于 2003-7-30 18:45:20 | 显示全部楼层 |阅读模式
想实现视角的远近变化的功能
我的matlab里面没camera的函数
用源代码编了一个movecamera函数存为m文件
function movecamera(dist)
set(gca,'CameraViewAngleMode','manual')
newcp=cpos-dist*(cpos-ctarg);
set(gca,'Cameraposition','newcp')
function out=cpos
out=get(gca,'Cameraposition');
function out=ctarg
out=get(gca,'CameraTarget');  

dist的取值是【-1,1】,分别代表相机视角远离和靠近。
可以在调用的时候报错
是怎么回事啊?
各位大牛 指教!!
发表于 2003-7-30 19:07:25 | 显示全部楼层

报的什么错?
好像是参数错误吧。
比如说这一句:
set(gca,'Cameraposition','newcp')
 楼主| 发表于 2003-7-30 19:13:09 | 显示全部楼层

调用的时候要取定一个dist值  我取的是【-1,1】之间的一个数
报错就是显示的是这个取值有错
发表于 2003-7-30 19:29:26 | 显示全部楼层

取值应该不会错的
但在设定Cameraposition属性值的时候
'Cameraposition'是不是应该写作:'CameraPosition'
请确认一下
 楼主| 发表于 2003-7-30 19:36:14 | 显示全部楼层

呵呵 是该大写的
但是问题不是出在这里
我改了 还是同样的报错
发表于 2003-7-30 19:53:40 | 显示全部楼层

我刚才写了一小段代码,试了一下问题还是处在那句代码上
错误提示是:
Value must be a 3 element numeric vector

解决的办法是把代码改成这样:
set(gca,'CameraPosition',newcp)

看出问题出在哪里了吗?
 楼主| 发表于 2003-7-30 20:15:31 | 显示全部楼层

解决的办法是把代码改成这样:
set(gca,'CameraPosition',newcp)

看出问题出在哪里了吗?[/quote]
我这样改过了!
发表于 2003-7-30 20:33:01 | 显示全部楼层

出什么错误提示了?
发表于 2003-7-30 20:37:46 | 显示全部楼层

这是我写的那个小程序的代码:
movecomera.m

function movecamera(dist)
set(gca,'CameraViewAngleMode','manual')
newcp=cpos-dist*(cpos-ctarg);
set(gca,'CameraPosition',newcp)
function out=cpos
out=get(gca,'CameraPosition');
function out=ctarg
out=get(gca,'CameraTarget');

调用上面函数的代码:
t=(0:0.02:2)*pi;
x=sin(t);
y=cos(t);
z=cos(2*t);
plot3(x,y,z,'b-',x,y,z,'bd');
view([-82,58]);
box on;
legend('lian','baoshi');
movecamera(-0.9)

运行出来预期的效果。
 楼主| 发表于 2003-7-31 06:57:42 | 显示全部楼层

我知道了 我的m文件没错 是后面调用它的函数有问题
觉得你是个牛人呵呵
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-4-16 14:31 , Processed in 0.061722 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表