Mathematica应用——变换图形

2025-10-18 18:25:23

1、        首先,绘制一个单位圆形和椭圆形。

圆的方程是:x^2+y^2==1;

椭圆的方程是:x^2/2^2+y^2==1。

        然后把单位圆形转化为椭圆形。

        不知道为什么,用网页版Mathematica导出的动态图就能播放一次呢?比如下面第三幅图。

Mathematica应用——变换图形

Mathematica应用——变换图形

Mathematica应用——变换图形

Mathematica应用——变换图形

2、        下面用另一种方法,把单位圆变成椭圆,其实很简单,只要在方程里面填上参数就行。

x^2/a^2+y^2==1

        当a从1变为2,就是一个变形过程。而且代码也简单的多:

Manipulate[ContourPlot[x^2/a^2+y^2==1,{x,-2.1,2.1},{y,-1.1,1.1},AspectRatio->Automatic],{a,0,1}]

Mathematica应用——变换图形

Mathematica应用——变换图形

Mathematica应用——变换图形

3、圆的参数方程是:{Cos[u],Sin[u]};

椭圆的参数方程是:{2 Cos[u],Sin[u]};

        试图用参数方程实现图形的转化。

        同样是有两种转化方法,第一种方法是:

(1-a)*{Cos[u],Sin[u]}+a*{2 Cos[u],Sin[u]},其中a从0变为1;

        第二种方法是:

{a*Cos[u],Sin[u]},其中a从1变为2。

Mathematica应用——变换图形

Mathematica应用——变换图形

4、        这一次,把圆变成正方形,同时要求圆和正方形的面积都是1。

        其中,正方形的方程是:

Abs[x]+Abs[y]==1/Sqrt[2];

        圆的方程是:

Abs[x]^2+Abs[y]^2==1/Pi。

        不过,转化过程就只能使用第一种方法了,因为我没有求出Abs[x]^a+Abs[y]^a==1的面积公式,所以无法用第二种方法。

        这个“化圆为方”是不完美的,中间过程并没有保持图形面积不变,好在首尾的正方形和圆形的面积都是1。

        要想获得保持面积始终相等的变形过程,看看大家有没有好的办法?

Mathematica应用——变换图形

Mathematica应用——变换图形

5、                再来一个三维的例子,把球形变成正八面体。

        不过,这一次不去刻意追求面积或体积相等,而是放宽限制,便于用第二种方法进行变形。

        正八面体的方程是:

Abs[x]+Abs[y]+Abs[z]==1

        于是,Abs[x]^a+Abs[y]^a+Abs[z]^a==1,当a从2变为1,就实现了球到正八面体的转化。

        网页版Mathematica执行不了这个互动代码,因为用时间太长?

Mathematica应用——变换图形

Mathematica应用——变换图形

6、        最后,请大家思考结合问题:

        正方形的参数方程是什么?

        正方体的隐函数方程和参数方程是什么?

        正八面体的参数方程是什么?

        上面第四步“化圆为方”的过程中,如果要求变形过程里所有的图形都保持面积不变,能实现吗?

Mathematica应用——变换图形

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢