查看: 136|回復: 0|關注: 0
打印 上一主題 下一主題

[未答復] 2D座標變成3D

[復制鏈接]

新手

9 麥片

財富積分


050


2

主題

5

帖子

0

最佳答案
跳轉到指定樓層
1#
發表于 2019-10-25 12:03:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 alexliang121 于 2019-10-28 22:40 編輯

各位大大..
我有程式已畫出2D,想將它畫成3D的狀況
我需要增加什麼?
程式內容
R=10;
xc=-R;
yc=0;
xo=-1.5*R;
yo=0;
m=-0.5;
theta=-45:45;
xmin=-20;
xmax=5;
ymin=-15;
ymax=15;
theta=theta*pi/180;
x=xc+R*cos(theta);
y=yc+R*sin(theta);

for i=-20:20;
angle=i*pi/180;
xo1=xo-xc;
dox=cos(angle);
doy=sin(angle);
t=-(dox*xo1+doy*yo)+sqrt((dox*xo1+doy*yo).^2+(R.^2-xo1.^2-yo.^2));
xs=xo+dox.*t;
ys=yo+doy.*t;
angle2=i*pi/90;
dox1=cos(angle2);
doy1=sin(angle2);
nx=(xc-xs)/sqrt((xc-xs).^2+(yc-ys).^2);
ny=(yc-ys)/sqrt((xc-xs).^2+(yc-ys).^2);
co=nx*dox+ny*doy;
dr=[dox1;doy1]+2*co*[nx;ny];
t2=sqrt((3*R/4).^2+(m*yo).^2);
xg=xs-dox1.*t2;
yg=-0.5*(ys-doy1.*t2);
xi=xg;
yi=yg-m*yo;
figure(1);
plot(x,y,'-k');
hold on
plot(xc,yc,'-xk');
xlim([xmin xmax]);
ylim([ymin ymax]);
plot([xmin xmax],[0 0],'-k');
plot([0 0],[ymin ymax],'-k');
plot([xo xs],[yo ys],'-b');
plot([xs xc],[ys yc],'-g');
plot([xs xg],[ys yg],'-r');
end




您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

關閉

站長推薦上一條 /3 下一條

快速回復 返回頂部 返回列表
哪一款德州扑克还能玩