注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

随机过程

http://superware.blog.163.com

 
 
 

日志

 
 

Asymptote 记录 (VI):坐标单位  

2012-10-27 15:39:03|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、再讨论 size 和 unitsize 函数

使画图区域具有固定大小:

(1)、指定一个明确的单位( unitsize ),这将对任何尺寸的调用有效:

unitsize (x = 1cm, y = 2cm);


(2)、在用户坐标中指定的位置,相当于给定图像大小:

import graph;

real[] x={0,1,2,3};
real[] y=x^2;

draw(graph(x,y),red);

xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks);

size(5cm,5cm,point(SW),point(NE)); // 指定 box (5cm,5cm),并给出其对应逻辑区域的 SW 点和 NE 点。

// 绘图区域单位长度相等

label("$f_\mathrm{T}$",point(N),2N);


(3)、明确告诉 Asymptote,让它把画图区域映射到指定大小:

import graph;

size(250,200,IgnoreAspect); // 直接指定绘图区域大小,绘图区域 x、y 轴方向单位长度相等。

draw(graph(exp,-1,1),red);

xaxis("$x$",BottomTop,LeftTicks);

yaxis("$y$",LeftRight,RightTicks);

fixedscaling((-1.5,-0.5),(1.5,3.5));


2、举例:

(1)、

import graph;
unitsize (4cm, 8cm);
defaultpen (1.5pt + fontsize (14pt) + Helvetica());
real f (real x) {return sin(pi*x)^2*exp(-x);}
real g (real x) {return cos(pi*x)^2*exp(-x);}
Label lab1, lab2;
lab1 = Label ("$\phi_{f_1}$ vs $\phi_{f_{11}}$");
lab2 = Label ("$\phi_{f_6}$ vs $\phi_{f_{11}}$");
pen lt = linetype ("3 3");
draw (graph (f,0,4,operator..), red, lab1);
draw (graph (g,0,4,operator..), blue + lt, lab2);
string xas, yas;
xas = "Frequency(kHz)";
yas = "Cross Power(a.u.)";
xaxis (xas, BottomTop, LeftTicks);
yaxis (yas, LeftRight, RightTicks());
xequals (1, blue + Dotted);
xequals (2, blue + Dotted);
xequals (3, blue + Dotted);
yequals (0.5, blue + Dotted);
add (legend (), point ((0)), NE, UnFill);


Asymptote 记录 (VI) - superware - 随机过程
 
(2)、

import graph;
unitsize (8cm, 8cm);
defaultpen (1.5pt + fontsize (14pt) + Helvetica());
real f (real x) {return sin(pi*x)^2*exp(-x);}
real g (real x) {return cos(pi*x)^2*exp(-x);}
Label lab1, lab2;
lab1 = Label ("$\phi_{f_1}$ vs $\phi_{f_{11}}$");
lab2 = Label ("$\phi_{f_6}$ vs $\phi_{f_{11}}$");
pen lt = linetype ("3 3");
draw (graph (f,0,4,operator..), red, lab1);
draw (graph (g,0,4,operator..), blue + lt, lab2);
string xas, yas;
xas = "Frequency(kHz)";
yas = "Cross Power(a.u.)";
xaxis (xas, BottomTop, LeftTicks);
yaxis (yas, LeftRight, RightTicks());
xequals (1, blue + Dotted);
xequals (2, blue + Dotted);
xequals (3, blue + Dotted);
yequals (0.5, blue + Dotted);
add (legend (), point ((0)), NE, UnFill);


Asymptote 记录 (VI) - superware - 随机过程


(3)、

import graph;
unitsize (4cm, 16cm);
defaultpen (1.5pt + fontsize (14pt) + Helvetica());
real f (real x) {return sin(pi*x)^2*exp(-x);}
real g (real x) {return cos(pi*x)^2*exp(-x);}
Label lab1, lab2;
lab1 = Label ("$\phi_{f_1}$ vs $\phi_{f_{11}}$");
lab2 = Label ("$\phi_{f_6}$ vs $\phi_{f_{11}}$");
pen lt = linetype ("3 3");
draw (graph (f,0,4,operator..), red, lab1);
draw (graph (g,0,4,operator..), blue + lt, lab2);
string xas, yas;
xas = "Frequency(kHz)";
yas = "Cross Power(a.u.)";
xaxis (xas, BottomTop, LeftTicks);
yaxis (yas, LeftRight, RightTicks());
xequals (1, blue + Dotted);
xequals (2, blue + Dotted);
xequals (3, blue + Dotted);
yequals (0.5, blue + Dotted);
add (legend (), point ((0)), NE, UnFill);

 
Asymptote 记录 (VI) - superware - 随机过程

由上述 3 个实例分析可知:函数 unitsize 用来指定画图区的单位长度,对于 x、y 画图区域相差很大的时候,这个函数可以使画图区纵横合理。

(4)、比较 size 和 unitsize 两个函数的异同:

    size 指定的是画图区域的幅面,而 x、y 轴单位长度相等。
    unitsize 指定的是 x、y 轴单位长度所对应的实际长度,可以用来缩放 x、y 轴的比例。


 
  评论这张
 
阅读(119)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018