import numpy as np
import matplotlib.pyplot as plt
x_1_4 = np.arange(0, 1.001, 0.001)
y1 = pow(1 - x_1_4 ** 3, 1/3)
y4 = -y1
x_2_3 = -x_1_4
y2 = pow(1 + x_2_3 ** 3, 1/3)
y3 = -y2
fig = plt.figure(figsize=(5, 5))
plt.plot(x_1_4, y1, color='orange')
plt.plot(x_2_3, y2, color='orange')
plt.plot(x_1_4, y4, color='orange')
plt.plot(x_2_3, y3, color='orange')
plt.show()
小米新logo采用了3范数的思想
正常的圆方程是:
x
2
+
y
2
=
R
2
x^2+ y^2=R^2
x2+y2=R2
n范数曲线方程是:
x
n
+
y
n
n
=
R
\sqrt[n]{x^n+y^n}=R
nxn+yn=R
所以圆方程是2范数的一种。
小米手机采用的是3范数的曲线。方程应该是:
x
3
+
y
3
3
=
R
\sqrt[3]{x^3+y^3}=R
3x3+y3=R
本程序取
R
=
1
R=1
R=1
由于3次方不改变正负性,所以曲线要分成4段画。
第一段,第一象限,x在0,1间等间距取点。
y
=
1
−
x
3
3
y=\sqrt[3]{1-x^3}
y=31−x3
第四象限曲线与第一象限的x相同,y值像反。
第二象限,
x
<
0
x<0
x<0,所以:
y
=
1
+
x
3
3
y=\sqrt[3]{1+x^3}
y=31+x3
同理,第三象限的y值与第二象限相反。
将4段曲线的颜色选成一样的,拼在一起就是光滑的小米新logo轮廓线。
需要注意的是,np.arange取值时需要覆盖
x
=
1
x=1
x=1这个值,不然四段曲线拼不到一起。根据np.arange函数的特性,我们的终点应该多取一个步长,本例中去到了1.001.
效果图如下:
小米新logo