plot(plot::Polar([2*(1-cos(r)),r],r=0..2*PI))//绘制心形曲线
建议图形的定义和绘制分开写
注意Mesh是plot::Polar的参数而非plot函数的参数
//比较以下两个代码的区别
g:=plot::Polar([2*(1-cos(r)),r],r=0..2*PI,Mesh=13);
plot(g);//只有这个代码修改的Mesh值有效
g:=plot::Polar([2*(1-cos(r)),r],r=0..2*PI);
plot(g,Mesh=13);
(三)、绘制点、点列和直线段
1.绘制点
plot::Point2d(x,y,<动画参数>,<属性>)
plot::Point2d([x,y],<动画参数>,<属性>)
plot::Point2d(matrix[x,y],<动画参数>,<属性>)
PointStyle 点形状,默认值是PointStyle=FilledCircles
8种:Squares, FilledSquares, Circles, Crosses, XCrosses, Diamonds, FilledDiamonds, Stars
PointSize 点尺寸,默认值是PointSize=1.5,单位是毫米.
设置点的形状和尺寸
A:=plot::Point2d(0.5,0.5,PointStyle=Squares);
B:=plot::Point2d(0,0,PointSize=5);
plot(A,B,Width=50,Height=50)
2.绘制点列
plot::PointList2d(pts,<>,<>)
plot::PointList2d(M,<>,<>)
pts :点坐标的列表,即点列 [[x1,y1],[x2,y2],[x3,y3],…]
或者[ [ x[i],y[i] $i=1…n] ] 注意双重方括号
M:点坐标的n*2矩阵,如matrix([[x1,y1],[x2,y2],…])
或matrix[ [ x[i],y[i] $i=1…n] ]
Alist:=plot::PointList2d([[1,1],[2,2],[3,3]]);
plot(Alist);
//或者用序列 注意$前没有逗号
Alist:=plot::PointList2d([[i,i]$i=1..3]);
plot(Alist)
3.绘制直线段
plot::Line2d([x1,y1],[x2,y2],<动画参数>,<属性>)
以[x1,y1]和[x2,y2]为端点的线段
L:=plot::Line2d([1,1],[2,2])
plot(L)
4.添加文本
plot::Text2d(“text”,[x,y],<动画参数>,<属性>)
“text”:要添加的文本,必须用双引号括住
[x,y] :要添加文本的位置
TextFont 文本的字体,默认值是["sans-serif", 11];
TextRotation 文本的旋转角度,弧度制,默认值是0;
HorizontalAlignment 文本相对于添加位置的水平方位,默认值是Left,还有Center和Right
VerticalAlignment 文本相对于添加位置的垂直位置,默认值是BaseLine,还有Bottom、Center和Top
T:=plot::Text2d("haa",[1,2*a],a=0.1..2,TextFont=[20]);
R:=plot::Rectangle(0..2,0..4);
plot(T,R)
T1:=plot::Text2d("ha",[1,1],TextRotation=PI/4,HorizontalAlignment=Left,TextFont=[20]);
T2:=plot::Text2d("haa",[1,-1],TextRotation=-PI/4,HorizontalAlignment=Left,TextFont=[20]);
T3:=plot::Text2d("haaa",[-1,-1],TextRotation=PI/4,HorizontalAlignment=Right,TextFont=[20]);
T4:=plot::Text2d("haaaa",[-1,1],TextRotation=-PI/4,HorizontalAlignment=Right,TextFont=[20]);
plot(T1,T2,T3,T4,#C)
1.plot::Sequence(x,n=nmin…nmax,<动画参数>,<属性>)
x:即x(n),数列的通项公式
n:必须都是整数
常用属性参数
Color=RGB::Red
LinesVisible 线是否显示,默认是LineVisible=FALSE,即不显示
PointVisible 点是否显示,默认是PointVisible=TRUE,即显示
delete n:
A:=n-->1/2*sin(2*PI/(6*2^(n-1)))*6*2^(n-1);
ap:=plot::Sequence(A,n=0..8);
plot(ap)
2.plot::Circle2d(r,[x,y],<动画参数>,<属性>)
[x,y]:圆心,若不写,默认在原点
常用属性参数
LinesVisible 线是否显示,默认是LineVisible=TRUE,即显示
Filled 内部是否填充,默认是Filled=FALSE,即不显示
FillColor 内部填充颜色,默认是FillColor=RGB::Red
3.绘制多边形
plot::Polygon2d(pts,<动画参数>,<属性>)
plot::Polygon2d(M,<动画参数>,<属性>)
pts:[[x1,y1],[x2,y2],…]
M:n*2规模矩阵 matrix([[x1,y1],[x2,y2]…])
LineStyle 线是否显示,默认显示,此时可以设置关于线属性的其他参数
Closed 默认Closed=FALSE,即终点与起点不连接
FillColor 内部填充颜色
Fillpattern 填充方式
PointVisible 是否显示点
C:=plot::Circle2d(1,[0,0]);
n:=1;
Vie:=plot::Polygon2d([[cos(2*PI*k/(6*2^(n-1))),sin(2*PI*k/(6*2^(n-1)))]$k=0..6*2^(n-1)]);
plot(C,Vie)//绘制圆内接正多边形
4.绘制矩形
plot::Rectangle(xmin…xmax,ymin…ymax,<动画参数>,<属性>)
xmin…xmax 矩形的左右边界
ymin…ymax 矩形的上下边界
LineVisible:线是否显示
Filled:内部是否填充
limit(f,x=x0) 计算双侧极限
limit(f,x=x0,Left) 计算左侧极限
limit(f,x=x0,Right) 计算右侧极限
f:函数或数列表达式
x=x0 : 被求极限的位置,x0也可以换成也可以是infinity或-infinity
注意若极限不存在,则返回undefined
limit(1/x,x=infinity,Left);
limit(1/x,x=-infinity,Right);//结果都是0
1.多项式除法运算
divide(P,Q,[x])
P:分子的多项式表达式
Q:分母的多项式表达式
[x]:多项式的变量
返回商式和余式
2.解方程或不等式
solve(f,x)
solve(f,x=a…b) 返回函数在[a,b]之间的零点
S:=solve(x^2=2,x);
如果想获得精确解
float(S);
系统默认是保留十位有效数字的,如果想保留更多位:
DIGITS:20:float(solve(x^2=2,x));
solve(x-2>2,x);//解不等式,结果是4到正无穷
3.其他命令
linsolve:求解线性方程组
RootOf:求解多项式的根
testeq:检验两个表达式是否相等