勇哥接触Matlab日子不短了。以前在工作中主要用它来绘制函数图像。由于使用它在C#中绘制图像普遍反映比较慢,因此几乎没有什么项目中使用了它。现在突然想到它是因为想学习一下矩阵与图形学的基础知识,辅助学习一下这些方面是该软件擅长的,因此在此留下学习的记号。
Matlab最大的优点就是简单,容易操作。首先介绍正玄函数绘制过程。
确定函数的定义域,这里以(-π,π)为例。
程序如下:x=[-pi:0.001:pi];该程序语句说明函数定义域,同时每隔0.001取一个x值,并计算该点处的函数值,作为绘图点。0.001称为步长。
定义函数,程序如下:y=cos(x);
绘制函数,程序如下:plot(x,y)plot是用来绘制函数的。
具体代码如图所示。
x=[-pi:0.001:pi] y=cos(y) plot(x,y)
绘制出来的图像为:
在有一篇勇哥写到用圆的方程画圆,公式为x^2+y^2=r^2,利用Matlab的代码如下:
x=[-100:1:100] y=sqrt(100^2-power(x,2)) plot(x,y) plot(x,-y)
结果是圆分上下两部分画出,跟C#程序的画法是一样。
注意上的代码中:如果求x^2必须写成power(x,2)。而常量可以直接写成100^2。
如果你要问勇哥怎么画一次画一个完整的圆。
可以参考下面的代码:
一种是直角坐标系下plot(x,y)绘制圆,另外一种是极坐标系下polar(theta,rho)绘制圆。
其中第一种方式我们使用三角函数绘制的圆,而不是使用圆的方程。
function circle2(r) %close all; clear all; clc theta=0:pi/100:2*pi; x=r*cos(theta); y=r*sin(theta); rho=r*sin(theta); figure(1) plot(x,y,'-') hold on; axis equal fill(x,y,'c') figure(2) h=polar(theta,rho); set(h,'LineWidth',2) %把两个结果绘制在同一张图上 figure(3) subplot(1,2,1);plot(x,y,'-');hold on; axis square fill(x,y,'c') subplot(1,2,2);h=polar(theta,rho);set(h,'LineWidth',2)
结果如下:
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

