subject_18341.htm

来自「一些关于vc的问答」· HTM 代码 · 共 120 行 · 第 1/2 页

HTM
120
字号
<p>
序号:18341 发表者:西门吹雪 发表日期:2002-10-19 21:19:23
<br>主题:大家来运行这个程序试试,结果不是我所要的,问题在哪里
<br>内容:很简单的一个小程序:<BR>#include "iostream.h"<BR>#include "math.h"<BR>#define&nbsp;&nbsp;PI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.14159265358979323846<BR>#define&nbsp;&nbsp;RADIANS(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PI*(x)/180.0<BR>#define&nbsp;&nbsp;ARADIANS(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;180.0*(x)/PI<BR>#define&nbsp;&nbsp;D1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.83<BR>#define&nbsp;&nbsp;D2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.03<BR>#define&nbsp;&nbsp;D3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.51<BR>#define&nbsp;&nbsp;D4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0<BR>#define&nbsp;&nbsp;D5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0<BR>#define&nbsp;&nbsp;D6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.63<BR>typedef&nbsp;&nbsp;struct&nbsp;&nbsp;adver<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;double tht1,tht2,tht3,tht4,tht5,tht6;<BR>}ADVERSE;<BR><BR>ADVERSE AdverEvaluate(double px,double py,double pz,double roll,double pitch,double yaw)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;ADVERSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adver;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double tht1(0.0),tht2(0.0),tht3(0.0),tht4(0.0),tht5(0.0),tht6(0.0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;double p3x,p3y,p3z,p1,p2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double ax,ay,az,nx,ny,nz,ox,oy,oz;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double T11,T12,T13,T14,T21,T22,T23,T24,T31,T32,T33,T34, T;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;nx=cos(roll)*cos(pitch);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ny=sin(roll)*cos(pitch);<BR>&nbsp;&nbsp;&nbsp;&nbsp;nz=-sin(pitch);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;ox=cos(roll)*sin(pitch)*sin(yaw)-sin(roll)*cos(yaw);<BR>&nbsp;&nbsp;&nbsp;&nbsp;oy=sin(roll)*sin(pitch)*sin(yaw)+cos(roll)*cos(yaw);<BR>&nbsp;&nbsp;&nbsp;&nbsp;oz=cos(pitch)*sin(yaw);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;ax=cos(roll)*sin(pitch)*cos(yaw)+sin(roll)*sin(yaw);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ay=sin(roll)*sin(pitch)*cos(yaw)-cos(roll)*sin(yaw);<BR>&nbsp;&nbsp;&nbsp;&nbsp;az=cos(pitch)*cos(yaw);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;p3x=px-D6*ax;<BR>&nbsp;&nbsp;&nbsp;&nbsp;p3y=py-D6*ay;<BR>&nbsp;&nbsp;&nbsp;&nbsp;p3z=py-D6*az;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;a11=nx*cos(tht1)*cos(tht2)+ny*sin(tht1)*cos(tht2)+nz*sin(tht2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a12=ox*cos(tht1)*cos(tht2)+oy*sin(tht1)*cos(tht2)+oz*sin(tht2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a13=ax*cos(tht1)*cos(tht2)+ay*sin(tht1)*cos(tht2)+az*sin(tht2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a14=p3x*cos(tht1)*cos(tht2)+p3y*sin(tht1)*cos(tht2)+p3z-D1*sin(tht2)-D2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;a21=-nx*cos(tht1)*sin(tht2)-ny*sin(tht1)*cos(tht2)+nz*cos(tht2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a22=-ox*cos(tht1)*sin(tht2)-oy*sin(tht1)*cos(tht2)+oz*cos(tht2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a23=-ax*cos(tht1)*sin(tht2)-ay*sin(tht1)*cos(tht2)+az*cos(tht2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a24=-p3x*cos(tht1)*sin(tht2)-p3y*sin(tht1)*cos(tht2)+p3z*cos(tht2)-D1*cos(tht2);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;a31=nx*sin(tht1)-ny*cos(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a32=ox*sin(tht1)-oy*cos(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a33=ax*sin(tht1)-ay*cos(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;a34=p3x*sin(tht1)-p3y*cos(tht1);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;tht1=atan2(p3x,p3y);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;p1=p3x*cos(tht1)-p3y*sin(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;p2=p3z-D1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;T=(p1*p1+p2*p2-D2*D2-D3*D3)/(2*D2*D3);//T=cos(tht3);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;tht3=atan2(sqrt(1-T*T),T);<BR>&nbsp;&nbsp;&nbsp;&nbsp;tht2=atan2((p2*(D3*cos(tht3)+D2)-p1*D3*sin(tht3)),(p1*(D3*cos(tht3)+D2)-p2*D3*sin(tht3)));<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;T11=nx*(sin(tht3)*cos(tht1)*cos(tht2)*sin(tht3)*cos(tht1)*cos(tht2)+cos(tht1)*cos(tht3)*sin(tht2)*cos(tht1)*cos(tht3)*sin(tht2))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ny*(sin(tht1)*sin(tht3)*cos(tht2)*sin(tht1)*sin(tht3)*cos(tht2)+sin(tht1)*sin(tht2)*cos(tht3)*sin(tht1)*sin(tht2)*cos(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nz*(sin(tht3)*sin(tht2)*sin(tht3)*sin(tht2)+cos(tht3)*cos(tht3)*cos(tht2)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;T12=ox*(sin(tht3)*cos(tht1)*cos(tht2)*sin(tht3)*cos(tht1)*cos(tht2)+cos(tht1)*cos(tht3)*sin(tht2)*cos(tht1)*cos(tht3)*sin(tht2))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oy*(sin(tht1)*sin(tht3)*cos(tht2)*sin(tht1)*sin(tht3)*cos(tht2)+sin(tht1)*sin(tht2)*cos(tht3)*sin(tht1)*sin(tht2)*cos(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oz*(sin(tht3)*sin(tht2)*sin(tht3)*sin(tht2)+cos(tht3)*cos(tht3)*cos(tht2)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;T13=ax*(sin(tht3)*cos(tht1)*cos(tht2)*sin(tht3)*cos(tht1)*cos(tht2)+cos(tht1)*cos(tht3)*sin(tht2)*cos(tht1)*cos(tht3)*sin(tht2))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ay*(sin(tht1)*sin(tht3)*cos(tht2)*sin(tht1)*sin(tht3)*cos(tht2)+sin(tht1)*sin(tht2)*cos(tht3)*sin(tht1)*sin(tht2)*cos(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;az*(sin(tht3)*sin(tht2)*sin(tht3)*sin(tht2)+cos(tht3)*cos(tht3)*cos(tht2)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;T14=px*(sin(tht3)*cos(tht1)*cos(tht2)*sin(tht3)*cos(tht1)*cos(tht2)+cos(tht1)*cos(tht3)*sin(tht2)*cos(tht1)*cos(tht3)*sin(tht2))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;py*(sin(tht1)*sin(tht3)*cos(tht2)*sin(tht1)*sin(tht3)*cos(tht2)+sin(tht1)*sin(tht2)*cos(tht3)*sin(tht1)*sin(tht2)*cos(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pz*(sin(tht3)*sin(tht2)*sin(tht3)*sin(tht2)+cos(tht3)*cos(tht3)*cos(tht2)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;T21=nx*sin(tht1)*sin(tht1)+ny*cos(tht1)*cos(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;T22=ox*sin(tht1)*sin(tht1)+oy*cos(tht1)*cos(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;T23=ax*sin(tht1)*sin(tht1)+ay*cos(tht1)*cos(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;T24=px*sin(tht1)*sin(tht1)+py*cos(tht1)*cos(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;T31=nx*(cos(tht1)*cos(tht2)*cos(tht3)*cos(tht1)*cos(tht2)*cos(tht3)+cos(tht1)*sin(tht2)*sin(tht3)*cos(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ny*(cos(tht2)*sin(tht1)*cos(tht3)*cos(tht2)*sin(tht1)*cos(tht3)+sin(tht1)*sin(tht2)*sin(tht3)*sin(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nz*(cos(tht3)*sin(tht2)*cos(tht3)*sin(tht2)+sin(tht3)*cos(tht2)*sin(tht3)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;T32=ox*(cos(tht1)*cos(tht2)*cos(tht3)*cos(tht1)*cos(tht2)*cos(tht3)+cos(tht1)*sin(tht2)*sin(tht3)*cos(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oy*(cos(tht2)*sin(tht1)*cos(tht3)*cos(tht2)*sin(tht1)*cos(tht3)+sin(tht1)*sin(tht2)*sin(tht3)*sin(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oz*(cos(tht3)*sin(tht2)*cos(tht3)*sin(tht2)+sin(tht3)*cos(tht2)*sin(tht3)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;T33=ax*(cos(tht1)*cos(tht2)*cos(tht3)*cos(tht1)*cos(tht2)*cos(tht3)+cos(tht1)*sin(tht2)*sin(tht3)*cos(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ay*(cos(tht2)*sin(tht1)*cos(tht3)*cos(tht2)*sin(tht1)*cos(tht3)+sin(tht1)*sin(tht2)*sin(tht3)*sin(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;az*(cos(tht3)*sin(tht2)*cos(tht3)*sin(tht2)+sin(tht3)*cos(tht2)*sin(tht3)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;T34=px*(cos(tht1)*cos(tht2)*cos(tht3)*cos(tht1)*cos(tht2)*cos(tht3)+cos(tht1)*sin(tht2)*sin(tht3)*cos(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;py*(cos(tht2)*sin(tht1)*cos(tht3)*cos(tht2)*sin(tht1)*cos(tht3)+sin(tht1)*sin(tht2)*sin(tht3)*sin(tht1)*sin(tht2)*sin(tht3))+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pz*(cos(tht3)*sin(tht2)*cos(tht3)*sin(tht2)+sin(tht3)*cos(tht2)*sin(tht3)*cos(tht2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;tht4=atan2(T23,T13);<BR>&nbsp;&nbsp;&nbsp;&nbsp;tht5=atan2(T31,(cos(tht4)*T11+T21));<BR>&nbsp;&nbsp;&nbsp;&nbsp;tht6=atan2((-sin(tht4)*T11+cos(tht4)*T21),(-sin(tht4)*T12+cos(tht4)*T22));<BR>&nbsp;&nbsp;&nbsp;&nbsp;adver.tht1=ARADIANS(tht1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;adver.tht2=ARADIANS(tht2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;adver.tht3=ARADIANS(tht3);<BR>&nbsp;&nbsp;&nbsp;&nbsp;adver.tht4=ARADIANS(tht4);<BR>&nbsp;&nbsp;&nbsp;&nbsp;adver.tht5=ARADIANS(tht5);<BR>&nbsp;&nbsp;&nbsp;&nbsp;adver.tht6=ARADIANS(tht6);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;adver;<BR>}<BR><BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;double px,py,pz,roll,pitch,yaw;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ADVERSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adver;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"plaese insert:";<BR>&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;px&gt;&gt;py&gt;&gt;pz&gt;&gt;roll&gt;&gt;pitch&gt;&gt;yaw;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;":";<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;adver.tht1&lt;&lt;" "&lt;&lt;adver.tht2&lt;&lt;" "&lt;&lt;adver.tht3&lt;&lt;" "&lt;&lt;adver.tht4&lt;&lt;" "&lt;&lt;adver.tht5&lt;&lt;" "&lt;&lt;adver.tht6;<BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:QQ糖 回复日期:2002-10-19 21:30:54
<br>内容:我晕了!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:西门吹雪 回复日期:2002-10-19 21:38:50
<br>内容:你试试嘛,很简单的.考过去运行一下萝,没有错误的,运行的结果不是我想要的,而且不管什么输入,都只有一个输出.麻烦QQ了.分不够再给了.比较急.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:塞翁 回复日期:2002-10-20 03:13:13
<br>内容:好象这个&nbsp;&nbsp;"return&nbsp;&nbsp;adver; " 有点问题;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:西门吹雪 回复日期:2002-10-20 10:31:47
<br>内容:不会的,结构体都要返回这个的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:QQ糖 回复日期:2002-10-20 10:32:37
<br>内容:没有调用计算函数啊:<BR><BR>输入数据完了以后,调用一下就可以了!<BR><BR>main函数代码如下:<BR><BR>其它不用变,只要加一句话就行了,有注释的!<BR><BR><BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;double px,py,pz,roll,pitch,yaw;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ADVERSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adver;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"plaese insert:";<BR>&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;px&gt;&gt;py&gt;&gt;pz&gt;&gt;roll&gt;&gt;pitch&gt;&gt;yaw;<BR>&nbsp;&nbsp;&nbsp;&nbsp;adver = AdverEvaluate( px, py, pz, roll, pitch, yaw); //加这句话!<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;":";<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;adver.tht1&lt;&lt;" "&lt;&lt;adver.tht2&lt;&lt;" "&lt;&lt;adver.tht3&lt;&lt;" "&lt;&lt;adver.tht4&lt;&lt;" "&lt;&lt;adver.tht5&lt;&lt;" "&lt;&lt;adver.tht6;<BR>}<BR><BR><BR>不知道对不对?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:西门吹雪 回复日期:2002-10-20 10:40:23
<br>内容:呵呵,还是绿猪厉害呀,初步检查正确,还有待更进一步的检查。<BR>谢谢绿猪呀。<BR>关于公式的堆砌你能给一些建议吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:QQ糖 回复日期:2002-10-20 10:46:51
<br>内容:自己好好想想嘛!<BR><BR>我一看到这一堆东西,就没想往下看!<BR><BR>呵呵!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:西门吹雪 回复日期:2002-10-20 10:52:56
<br>内容:是这样的,我的基础比较差呀。所以有点简单的东西不是很明白的。不过经高手一指点就不一样了。谢谢你呀绿猪。<BR>这个我觉得是公式的堆砌,但我没有更好的办法。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:QQ糖 回复日期:2002-10-20 10:59:19
<br>内容:呵呵,把模样差不多的写个函数吧!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?