24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2387  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

plxh

木虫 (正式写手)

[求助] 求助,如何用matlab或者origin画这个图

在画出质点圆形轨迹的前提下,画出菱形所指出的方向。菱形的位置和指向数据都可以得到。

菱形的颜色从深到浅代表着时间的从前到后,这点不用实现。

请大家指点可以用Matlab或Origin中什么指令画出来么?
回复此楼

» 收录本帖的淘帖专辑推荐

Research

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

plxh

木虫 (正式写手)

送鲜花一朵
引用回帖:
7楼: Originally posted by sogooda at 2012-04-06 19:36:14:
matlab 命令colorbar可以添加。

兄弟,谢谢你!希望能和你成为好友!
9楼2012-04-07 14:13:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

sogooda

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
plxh: 金币+2, ★★★很有帮助, 可否介绍怎么进行 显示出菱形、方向显示、颜色改变? 2012-04-06 09:36:31
xiegangmai: 金币+1, 谢谢参与! 2012-04-06 10:14:04
plxh: 金币+5, ★★★★★最佳答案, 谢谢帮助! 2012-04-06 10:35:04
据我所知没有这种现成的命令(一个命令就能实现楼主所说的功能)。
但是用matlab自己编程的话
“在画出质点圆形轨迹的前提下,画出菱形所指出的方向。菱形的位置和指向数据都可以得到。菱形的颜色从深到浅代表着时间的从前到后”
这些都是可以实现的。
2楼2012-04-06 09:31:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sogooda

金虫 (正式写手)

引用回帖:
2楼: Originally posted by sogooda at 2012-04-06 09:31:01:
据我所知没有这种现成的命令(一个命令就能实现楼主所说的功能)。
但是用matlab自己编程的话
“在画出质点圆形轨迹的前提下,画出菱形所指出的方向。菱形的位置和指向数据都可以得到。菱形的颜色从深到浅代表着 ...

绘制菱形可以用fill命令,但是fill是一个很通用的命令,并不能帮你直接绘制成菱形,它可以绘制任意形状。
fill(X,Y,ColorSpec)
x,y为指定的图形角点,colorspec为需要指定的颜色。
菱形的方向、位置等,需要根据轨迹和指向来计算,大小需要自己测试调节。
colorspec是一个[r,g,b]的3个元素的向量。根据右面colorbar的颜色,从一端循环到另一端就可以。
说了这么多也不知道说明白了没,还说的挺累的。早知道直接给你写下代码就得了,省得说了半天。
3楼2012-04-06 10:27:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sogooda

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
plxh: 回帖置顶 2012-04-06 19:10:14
plxh: 金币+13, ★★★★★最佳答案, 谢谢帮助!这位同学真是好人! 2012-04-06 19:19:17
CODE:
function Untitled2
clear;clc;close all
R=10;
x0=linspace(-R,R,50);
x=[x0,fliplr(x0)];
y=[sqrt(R^2-x0.^2),-fliplr(sqrt(R^2-x0.^2))];


theta=atan(y./x);

figure1=figure('color','w');plot(x,y);hold on;axis equal
myr=linspace(0,1,length(x));
myg=linspace(0,0,length(x));
myb=linspace(1,0,length(x));
for jj=1:length(x)   
    plotSquare(x(jj),y(jj),theta(jj),1,[myr(jj),myg(jj),myb(jj)]);
end

function plotSquare(x0,y0,theta,a,mycolor)
xs=[-a/2,0,a/2,0,-a/2];
ys=[0,-a/4,0,a/4,0];
xy=[cos(theta),-sin(theta);
    sin(theta),cos(theta)]*[xs;ys] ;

fill(xy(1,:)+x0,xy(2,:)+y0,mycolor)



4楼2012-04-06 18:39:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见