网站建设资讯

NEWS

网站建设资讯

太极图函数python 太极函数表达式

Python如何运用turtle绘制阴阳太极图

本文详细分析如何使用Python turtle绘制阴阳太极图,先来分解这个图形,图片中有四种颜色,每条曲线上的箭头表示乌龟移动的方向,首先从中心画一个半圆(红线),以红线所示圆的直径作半径画一个校园,半径为红线所示圆半径的0.15倍(蓝线),之所以选择0.15倍,是因为这样嵌入红圆内的小圆直径和红圆直径接近黄金分割。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的津市网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

相关推荐:《Python视频教程》

完整代码:

效果图如下:

奇函数是太极函数吗

最佳回答:奇函数关于原点对称,就像太极图,比如y=x.偶函数关于Y轴对称,比如y=|x|.增函数就是Y随X增大而增大,比如 y=x 减函数是Y随着.

2021-10-23

太极图中体现的是对立的阴阳变化。静态的太极图中关键部位是:太极图的边界,阴阳分割线,和鱼眼。从数学上看,可以这样理解:

关于鱼眼和无穷的关系,这里简单描述一下。在数学上,无穷大是一个很有意思的概念。正无穷是比所有正数都大,负无穷比所有的负数都小。但是正无穷和负无穷却是相同的,它们可以认为是同一个点。也就是说沿着正无穷的方向,会发现是通往了负无穷。基于上面的理解,对太极图的二维方程描述进行了如下猜想。

二维太极方程猜想如下:

对应的曲线图:

从太极图的横轴上,容易看出:

于是假设太极方程是一个分式:

零点可以表示为分子为0,极点可以表示为分母为0。所以分母2个极点,就是可以表示为二元二次方程:

一共5个独立的参数。只有2个极点,所以看看这些参数有什么关系。代入极点位置(+/-x1, 0):

这样容易算出:a不可能为0,这样a就可以消去。这样d=0.所以b, c, e为任意值,可以取a为1:

再看分子,在x轴上,有3个零点,所有可以假设二元三次方程。方程的形式为如下。代入3个零点(0,0),(+/-x0,0), 由于a0不为0,所以可以消去a1,这样:

其它6个和y相关的参数都可以任意数。这样,方程可以表示为(x0表示零点,x1表示极点):

上面的方程y轴还是有很大的自由度。可以看看单x轴的变化情况,y=0,x0=1, x1=1/2方程简化如下。从曲线看来,font style="color:red"这种曲线明显不符和太极图/font。因为在极点附近发现出现正负变化的极点。而太极图的极点应该是单向的,也就是1/2或-1/2的地方出现的极点是单项往上或下的。

要做修补其实很简单。对分母取绝对值就可以。绝对值可以用平方的开根号表示。分子的形式是一个奇函数。所以方程形式修改为:

这个方程的x轴曲线x=[-2, 2],y=0的图像表示为:

再看看x=0的情况下,y轴的数值曲线情况。根据太极图,在y的[-1,1]的范围内,应该只有(0,0)和边界(0,+/-1)这三个零点,没有极点。也就是分母在[-1,1]间没有零点解。所以:

接下去,看太极图的外圆上,应该都是零点。可以取+/-45度和+/-135度来看,太极图半径为1,所以(x,y)可以为如下4个点:(+/-sqrt(2)/2, +/-sqrt(2)/2)。代入分子:

(1)+(2)=

(1)+(3)=

(1)+(4)=

现在方程的形式为:

这个方程在零点的表达上,体现出了2条曲线:一条是在半径为1的圆上,还有就是一条过原点的直线上。我们知道这个太极阴阳分割线是直线太过简单,和太极图不吻合。太极图上的阴阳分割线应该是一条弧线,而不是一条直线。 网上 有论述过分割线的数学方程 ,这比直线或半圆更合适的太极分割线。其表示方法是:

所以f(x,y)可以这样表述,分子完美描述了太极图的上的零点:

上面方程,在b2,b3,b4全部为0的时候的三维曲线图为:

对这个图的诠释就是,已经和太极图有些像了,但是极点位置由于和y不相关,所以显得不是一个匀称的点,而是一块板。对极点进行修改。期望的鱼眼是什么样子呢?从变化的趋势看,应该也是一条弧线,而不是一个点。而且我们也知道,在阴阳分割线上,鱼眼x=+/-sqrt(2)/2的地方,除了y=0的地方是极点外,其余地方应该不是极点。所以对于分母的方程,其实b2/b3/b4是不能够全部为0的。下面这个方程在太极圆内部,y=0处x有2个解。反过来看,太极圆内,当x=+/-sqrt(2)/2时候,y只能有一个解,也就是只有1个极点。当然,太极圆外部可能还有y的解,但是如果这种情况存在的话,会影响太极图的形状?所以先假设y只有一个解。这样可以看到,根据二次方程只有一个解的条件:

这样分母就成为:

这个结果是有问题的。这样的曲线是连续的椭圆,圆,或双曲线。所以分母这种形式,不是只形成2个极点的情况,而是在x,y平面上的一条曲线,都能满足极点。J(x,y)=0,在xy平面上只形成2个零点,这会是什么样的一种函数呢?直接猜想,就是如下。b2的作用是控制极点的收敛速率。如果b2大,那么收敛也快。我试下来b2=16比较好,x和y方向的收敛速度比较一致:

关于这个太极函数的极性(正负)分析 :

分母都是正数。分子在太极图内部(x 2+y 2-1)始终是负数。所以正负极性只取决于函数:

而这个函数在太极图内部的解就是阴阳分割线。所以在太极图内部,是没有其它的阴阳交错的地方。

看看局部的3维的太极图(由于鱼眼是极点,所以只取一段绘图):

从太极图上,可以看到两个转换:

至于这个太极方程能够如何用于描述阴阳转换,有待进一步分析。讨论请联系 bigstone1998@sina.com .

用c语言做一个太极图

这个得结合 windows api写 ,我写了一个效果如下:

主要函数的代码如下:

VOID DrawTaiJi( HWND hWnd, 

HDC hDc,

int cxStart,

int cyStart,

int cxEnd,

int cyEnd, 

COLORREF color_yin,

COLORREF color_yang )

{

HBRUSH YinBrush = ::CreateSolidBrush(color_yin);

HBRUSH YangBrush = ::CreateSolidBrush(color_yang);

HPEN YinPen = ::CreatePen(PS_SOLID, 1, color_yin);

HPEN YangPen = ::CreatePen(PS_SOLID, 1, color_yang);

//使用阴笔、阴刷画出大圆

::SelectObject(hDc, YinBrush);

::SelectObject(hDc, YinPen);

::Ellipse(hDc, cxStart, cyStart, cxEnd, cyEnd);

//使用阳笔、阳刷画出半圆与阴中突出的阳半圆

::SelectObject(hDc, YangBrush);

::SelectObject(hDc, YangPen);

::Pie(hDc, cxStart, cyStart, cxEnd, cyEnd, cxStart + (cyEnd - cyStart) / 2 , cyStart, 

cxStart + (cyEnd - cyStart) / 2 , cyEnd);

::Ellipse(hDc, (cxEnd - cxStart) / 4 + cxStart, (cyEnd - cyStart) / 2 + cyStart, 

3 * (cxEnd - cxStart) / 4 + cxStart, cyEnd);

//使用阴笔,阴刷画出阳中突出的阴半圆

::SelectObject(hDc, YinBrush);

::SelectObject(hDc, YinPen);

::Ellipse(hDc, (cxEnd - cxStart) / 4 + cxStart, cyStart, 3 * (cxEnd - cxStart) / 4 + cxStart, 

(cyEnd - cyStart) / 2 + cyStart);

//使用阴笔,阴刷画出阳中突出的阳小圆

int ConValue = (cxEnd - cxStart ) / 200 + 1;

::Ellipse(hDc, (cxEnd - cxStart) / 2 + cxStart - 5 * ConValue,

3 * (cyEnd - cyStart) / 4 + cyStart - 5 * ConValue , 

(cxEnd - cxStart) / 2 + cxStart + 5 * ConValue,

3 * (cyEnd - cyStart) / 4 + cyStart + 5 *ConValue

);

//使用阳笔,阳刷画出阴中的阳小圆

::SelectObject(hDc, YangBrush);

::SelectObject(hDc, YangPen);

::Ellipse(hDc, (cxEnd - cxStart) / 2 + cxStart - 5 * ConValue,

(cyEnd - cyStart) / 4 + cyStart - 5 * ConValue,

(cxEnd - cxStart) / 2 + cxStart + 5 * ConValue,

(cyEnd - cyStart) / 4 + cyStart + 5 * ConValue

);

::DeleteObject(YinBrush);

::DeleteObject(YinPen);

::DeleteObject(YangPen);

::DeleteObject(YangBrush);

}

可能复制代码后你不有直接看到效果,所以我把相关的代码都一起打包了:

我是菜鸟,希望能帮到你,观楼主英俊潇洒,风流倜傥,必当世豪杰,诚邀加入0x30百度贴吧,共商义举,建不世之功!


分享文章:太极图函数python 太极函数表达式
当前URL:http://cdweb.net/article/hjejji.html