-
2020-11-01 12:42:30
在开始之前,我要对latex做一点补充。
上一篇文章中提到了latex绘制流程图,文中给出了一个实例,在具体的应用上也很简单。下面两个网页可能会比较有用,特别是在流程图的绘制上(各类shapes汇总):
流程图判断——菱形,其变扁的方法:
下面开始今天要说到的主题。matlab固然很牛叉,但是在理解和实现上还是相对复杂的,python利用现有的库,基本可以实现matlab所有的功能,甚至超越之。与前面的文章相对应,python绘图应该主要着眼的是一些比较严谨的数学公式的绘制问题,相对于latex,其图形更加有数学之美。
今天晚上,我又整了一下python的绘图,感觉还是比较方便的,50行不到的代码即可实现比较完美的图形,特别推荐。下面对应的依次是图形和代码:
对应的代码很简单:
#!/usr/bin/python
#coding = utf8
import sys
import string
import numpy as np
import matplotlib.pyplot as plt
def f_fun(d, k, i):
a = (2.0*d)/((2.0*k-i-1.0)*i+2.0*k*(d-k+1.0))
return a
def g_fun(d, k, i):
a = (2.0*d-2.0*k+i+1.0)*i*1.0/(2.0*d)
return a
def main():
form = ['ro-', 'b--<', 'g-*', 'y--s', 'c->']
k = 5
d = [9, 8, 7, 6, 5]
x = y = [1.0/k]
for t in range(5):
r = [f_fun(d[t], k, i) for i in range(k-1, -1, -1)]
a = [((1.0-g_fun(d[t], k, i)*r[k-i-1])*1.0/(k-i)) for i in range(k-1, 0, -1)]
a.append(1.0/k)
x.append(r[0])
y.append(a[0])
plt.plot(r, a, form[t], linewidth = 2.0, label = "$d="+str(d[t])+",n=10,k=5$")
plt.plot(x, y, linewidth = 1.2, color = 'black')
plt.plot([1.0], [1.0/k], 'rs')
plt.annotate("MDS point", xy=(1.0, 1.0/k), xycoords = 'data', xytext=(0.8, 0.25), arrowprops=dict(arrowstyle="->", linewidth = 1.2))
#plt.plot([1.0], [1.0/k], 'rs')
plt.legend(loc='upper right')
plt.title("Storage-Communication tradeoff n=10,k=5,d=5~9,B=1MB")
plt.ylabel("Storage per node $\alpha$")
plt.xlabel("Bandwidth to repair one node $\gamma$")
plt.grid(True)
plt.show()
if __name__ == '__main__':
main()
更多相关内容 -
易语言绘制数学图形
2020-07-17 09:39:13易语言绘制数学图形源码,绘制数学图形,draw_Coordinates,update,calcPoint,run_animation,draw_arc_single,draw_arc,draw_line -
易语言源码易语言绘制数学图形源码.rar
2020-02-21 07:22:55易语言源码易语言绘制数学图形源码.rar 易语言源码易语言绘制数学图形源码.rar 易语言源码易语言绘制数学图形源码.rar 易语言源码易语言绘制数学图形源码.rar 易语言源码易语言绘制数学图形源码.rar 易语言源码... -
易语言绘制数学图形源码-易语言
2021-06-13 05:34:01易语言绘制数学图形源码 -
e语言-易语言绘制数学图形
2019-08-23 11:01:06易语言绘制数学图形源码例程程序应用傅立叶变换绘制数学图形。 点评:易语言绘制数学图形源码是易语言数学应用例程。 -
纯JS 绘制数学函数
2021-01-21 13:12:37绘图对象Plot,包含了JS画点,JS画线,JS画正弦sin,JS画余弦cos,tan,圆,多边形。...JS绘制数学函数图 body{ margin: 0px; padding: 0px; } [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] -
Python3使用Matplotlib 绘制精美的数学函数图形
2020-09-19 11:19:03主要介绍了Python3使用Matplotlib 绘制精美的数学函数图形,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 -
在PowerPoint2021中制作数学图形立体矩形的简单方法.docx
2021-09-27 06:26:06在PowerPoint2021中制作数学图形立体矩形的简单方法.docx -
用MFC 设计绘制各种数学图形程序 如sin,cos等
2020-04-02 04:40:42本程序支持用户输入一般表达式,然后输出其对应的函数图形,例如:一次(二次……)函数,三角函数,双曲余弦,...另外,还支持一些供选择的数学图形,例如:圆,椭圆,三叶玫瑰线,四叶玫瑰线,阿基米德螺线,心形线。 -
使用Matplotlib 绘制精美的数学图形例子
2020-09-18 07:32:37今天小编就为大家分享一篇使用Matplotlib 绘制精美的数学图形例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
白板绘制工具,支持24种数学图形的绘制!
2021-07-09 12:37:33ZHFigureDrawingLayer一款白板绘制工具,支持涂鸦、单箭头、直线、虚线、双箭头直线、双杠直线、椭圆、圆形、矩形、三角形、圆弧、正余弦、梯形、菱形、五边形、六边形、坐标系、直角坐标系、三维坐标系、球体、三菱... -
Python:绘制数学图形
2019-10-05 22:59:242019年上半年学校举办数学图新设计大赛,交上来的作品有一部分是从网络上下载下来的图片,而并非自己设计。其实不必从网上下载,十几行代码就可以生成和网络上风格相同的图形。 程序很简单,就是下面这样的: ...2019年上半年学校举办数学图新设计大赛,交上来的作品有一部分是从网络上下载下来的图片,而并非自己设计。其实不必从网上下载,十几行代码就可以生成和网络上风格相同的图形。
程序很简单,就是下面这样的:
import turtle t = turtle.Pen() t.speed(0) turtle.bgcolor('black') sides = 2 colors = ['red', 'yellow', 'blue', 'orange', 'green', 'purple'] for x in range(360): t.pencolor(colors[(x % sides)]) t.forward(((x * 3) / sides + x)) t.left((360 / sides + 1)) t.pensize(((x * sides) / 200)) t.left(90)
#程序中使用了Python的turtle库。
运行后便绘制出了如下图片(sides=2):
#sides的值可以改变为1-6这六个数,绘制出的效果不同。 -
来自数学方程的美丽图形:绘制一些图形的 GUI-matlab开发
2021-06-01 19:13:40这是一个简单的 GUI 程序,可以根据数学方程式绘制出漂亮的图形。 -
数学建模番外篇1:PPT绘制3D图形
2022-01-02 11:53:49插件使用—更复杂的图形绘制 学完上面一些基础绘图之后,常见图形都可以绘制出来。而对于一些复杂的图形来说,使用插件可以提升效率。 下面以这个幻方的制作为例,来展示如何综合使用各个插件的特性。 制作步骤: 1...前言
这个专栏本不计划继续更新,掌握零基础必看之数学建模索引中的所有内容,美赛M奖应该唾手可得。但是,再往上,进阶到<1%的F奖和O奖,除了模型与运气,更大程度上依赖于插图的美观程度。有人戏称,美赛是作图大赛。确有其道理,精致、良好的图像不仅能够更清晰准确地表达思想,而且能极大提高审阅人的印象分。
因此,我开设此专栏的番外篇,主要针对论文的画图问题,记录分享相关的经验、技巧,后期会挑一些优秀论文的部分图片来进行复现。本篇主要讲解如何使用PPT绘制精美的3D图形,所用到的PPT版本为2019专业增强版。
文中提到的部分插件可以在我的交流群 710413249 中进行下载。为什么选择PPT?
也许在很多人的印象中,PPT就是一个演讲工具,套套各类模板而已。在学习PPT制图前,我也有此类想法。其实,PPT可以看作一个阉割版AI+阉割版PS+阉割版3Dmax/C4D的缝合怪,它最大的好处是方便快捷。在各类插件的加持下,PPT无法做到专业美工的精细,但足够能应对大多数场景。
下面就开始学习PPT的3D绘图。
深度—2D通往3D之路
平面2D图形,只有x,y两个维度,要进化成3D图形,就需要新增一个z维度,而这个维度就是深度。
创建一个矩形,设置深度大小。
由于深度设置完之后,方向垂直于屏幕,因此看不到效果。旋转一下角度就可以得到一个立方体:
布尔运算—PPT的精髓
经过上面的操作,可以发现,所有的3D图形都可以通过2D图形+深度进行生成。所以要获得合适的3D图形,首先要控制好2D图形的形状。而PPT特别的布尔运算,可以让我们快速获得各类形状。
布尔运算主要包括五种:拆分、剪除、结合、相交、组合
下面将逐一演示其效果。
布尔运算和选择的前后顺序有关,本演示均先以蓝色圆圈作为主对象。拆分:
可以发现,拆分是将两圆相交的部分沿轮廓拆解出来。剪除:
剪除是将主对象未相交的部分提取出来。结合:
结合即逻辑合取。相交:
相交即逻辑析取。组合:
组合保留两者相交的补集。绘制一个太极图
理解布尔运算的功能后,就能利用其功能绘制一个更复杂点的太极图了。
绘制步骤如下:
1、按Alt+F9呼出参考线
2、创建一个10x10的正圆在中心
3、使用一矩形覆盖半圆,使用合并形状->拆分,将大圆拆分成两个半圆。
4、创建两个5x5的小圆,移到大圆上下两部分中心。
5、Ctrl+D复制一层幻灯片。
6、在原幻灯片上选择左半部分和上圆,使用合并形状->结合,得到上蝌蚪形;在新幻灯片使用类似操作,得到下蝌蚪形。
7、拼合两个蝌蚪,添加中心小圆,调色即可。材料与光源—美化的核心
下面再回到3D图的美化,主要来看看两个核心属性-材料与光源。
首先来建立一个球体:
建立一个正圆形,设置顶部棱台和底部棱台宽/高为圆形半径的一半。
得到球体:
材料与光源都有多种选择:
下面是一些常用组合,适用于不同的场景:
纹理与渐变—美观立竿见影
在图片或形状的填充方式中,可以选择渐变填充和纹理填充。
纹理填充
先看看纹理填充,PPT自带了很多中纹理可供选择,比如这个长方体,选择木质纹理填充后,变成了一块逼真的木板:
此外,纹理填充有个剪切板的按键,网上可以随便搜索一个纹理,复制,再点击剪切板,即可直接将纹理填充上去。
例如:复制金质素材后,木板就可以变成金板。
不过纹理填充有个缺陷:正面填充正常,侧面填充会被拉伸。渐变填充
使用渐变填充,可以制作一块彩虹板:
渐变光圈可以任意添加,按钮左侧是增加一个光圈,后侧是减少一个光圈。通过渐变填充,可以增强材质的质感,例如使用灰色和银色交替的线性渐变,可以实现铝合金的材质效果。
渐变锐化—复刻一个宝可梦精灵球
在渐变填充中,可以发现两个光圈颜色不一致时,中间区域呈现过渡状态。当两个光圈接近或重合时,过渡带消失,这就是渐变锐化。
下面就用球体和渐变锐化,来制作一个宝可梦精灵球。
左图为网上下载的照片,右图为复刻样品,不是一模一样也是非常惊艳了。下面就将球进行拆解,看看如何制作:
整个部分主要由四个零件组成:
主球体采用渐变锐化:参数设置如图所示:
红色光圈设置为47%,黑色光圈设置为48%和52%,白色光圈设置为53%,采用线性(从上到下)渐变即可。剩下三个部件即普通的正圆,其中,为了突显按钮的效果,为最内层的圆添加一层外阴影,立体的效果就出来了。
编辑结点—更自由的转换
对于不规则的形状,可以采用编辑结点来实现。例如,实现一个弯曲的箭头效果:
首先绘制一个普通箭头,右键->编辑顶点,删除左下方结点,调节其他结点的控制手柄,实现效果。棱台—快速变得高大上
在上面建立球体,已经使用过圆棱台。
这里再次将棱台的作用开发一下,可以用圆棱台来快速提升图形的立体感。
以长方体为例,左侧为修改之前,右侧为修改之后。
可以发现,添加圆棱台之后,图形的高级感立刻出来了。
对于长方体来说,直接使用圆棱台会让边角过渡不太自然,因此可以使用圆角矩形。此外,还有其它棱台种类,可试不同情况来使用:
注:该图源自《PPT3D科研绘图》(https://study.163.com/course/courseMain.htm?courseId=1209399865)曲面图—勾勒立体图轮廓
在形状菜单中,还有个属性比较重要——曲面图。
简单来说,对于立体图形,不能直接使用轮廓线勾勒轮廓,而用曲面图可以达成这一目的。当图形颜色和背景颜色接近时,使用曲面图可以增强图形的立体效果。曲线图和轮廓线的对比如图所示:
剖面制作—考验你的空间想象力
PPT无法模拟出一个球被截去一面的效果,因此要制作剖面的制作本质上是图形的遮挡。
例如:制作下面这个球体顶部截取一段的剖面。
这里使用了一个球体再用渐变的椭圆覆盖,再调节光照角度。
整体效果还不是很完美,剖面绘制非常考验美术功底。插件使用—更复杂的图形绘制
学完上面一些基础绘图之后,常见图形都可以绘制出来。而对于一些复杂的图形来说,使用插件可以提升效率。
下面以这个幻方的制作为例,来展示如何综合使用各个插件的特性。
制作步骤:
1、使用曲线工具,勾勒出一个不规则形状。
2、使用islide插件的->设计排版->矩阵布局,绘制出5x5的图形矩阵,并调节间距。
3、全选,使用OneKey插件的旋转递进->随机旋转,使所有不规则图形有不同的角度。
4、使用英豪插件的位置分布->噪波工具,进一步让图形具备随机性。
5、使用一个矩形覆盖住图形的大半部分,复制一份,第一份使用相交,第二份使用剪除,得到两个互补的矩形。
6、修改左图的颜色,并为其增加一个顶部的角度棱台,为右图增加一个顶部的圆棱台,增加其立体效果。
7、选中两者,使用垂直居中、水平居中,右键->组合。
8、复制该图形五次,形成立方体的六个面,全部选中,使用OneKey的三维工具->沙漪立方拼,调节旋转角度。
(注:此步计算量大,会较为卡顿)
9、打开图层窗格,选择所有黑色部分,调节距底边高度,使内嵌部分突出来与空隙契合,得到最终成品。
上面的制作过程体现了各插件的综合使用,更多常用插件效果可参考下图:
注:该图源自《PPT3D科研绘图》(https://study.163.com/course/courseMain.htm?courseId=1209399865)导出图片
为了在论文中使用精致地图片,图片的高清非常必要。之间截图往往会导致图片分辨率低,影响美观。
OneKey插件的OK拼图可以方便地导出高清图片,设置如下:
PPT快捷键整理
下面整理了一些PPT常用的快捷键,用以提升作图效率。
场景 快捷键 作用 插入形状 shift 插入形状纵横比为1:1 ctrl 插入形状的中心为起点 shift+ctrl 插入形状纵横比为1:1,形状的中心为起点 缩放 shift 等比例缩放 ctrl 缩放时中心位置不变 shift+ctrl 从中心等比例缩放 复制粘贴 ctrl+c 复制 ctrl+v 粘贴 ctrl+x 剪切 ctrl+d 快速复制 ctrl+shift 复制到水平/垂直位置 移动与旋转 ctrl+上下左右 微移 shift 水平/垂直移动 Alt+左右 15°旋转 组合 ctrl+G 组合 ctrl+shift+G 解除组合 格式设置 ctrl+shift+c 格式复制 ctrl+shift+v 格式粘贴 上下角标 ctrl+"+=" 将所选文字设置为下标 ctrl+shift+"+=" 将所选文字设置为上标 -
C# 递归绘制数学图形
2010-04-26 18:55:56使用递归的方法绘制圆,构成一些比较好看的图形,是一个视频教程上的例子。绘图参数可选,如颜色,递归深度等。 -
Python:绘制数学图形(2)
2019-11-22 22:35:35好吧,我承认turtle库令我爱不释手,这几天又画了一个数学图形,来分享一下。 import turtle ninja = turtle.Pen() ninja.hideturtle() ninja.pencolor("#3333ff") ninja.speed(10) for i in range(180): ninja....好吧,我承认turtle库令我爱不释手,这几天又画了一个数学图形,来分享一下。
import turtle ninja = turtle.Pen() ninja.hideturtle() ninja.pencolor("#3333ff") ninja.speed(10) for i in range(180): ninja.forward(100) ninja.right(30) ninja.forward(20) ninja.left(60) ninja.forward(50) ninja.right(30) ninja.penup() ninja.goto(0, 0) ninja.pendown() ninja.right(2) turtle.done()
运行结果:
-
用Java语言生成数学图形
2020-11-30 20:22:42##java基础–用Java语言生成图形 //使用"psvm"+enter键 可快速创建main方法 //使用"sout"+enter键 可快速生成输出语句,自己可尝试一下 ## 1.生成矩形 public static void main(String[] args) { //生成一个10行... -
Python 绘制你想要的数学函数图形
2021-03-06 21:33:59结果发现,完全用不着明白什么是编程,就可以使用它完成很多数学函数图的绘制。通过以下两个步骤,就可以进行数学函数的绘制了。两个步骤(1)安装 AnacondaAnaconda 包含了 Python 的运行环境、诸多科学计算库以及... -
用C++实现数学函数图形绘制.doc
2021-12-04 19:22:07用C++实现数学函数图形绘制.doc -
mfc绘制数学函数图像
2020-07-18 22:52:49基于MFC编写一个单文档程序,在客户区用图形来展现各种数学函数曲线。 具体要求: 1)可绘制常见的数学函数曲线,如三角函数、指数函数、幂函数等。 2)通过菜单选择不同的函数曲线类型,可以通过对话框指定该函数的... -
基于MATLAB的数学图形制作.pdf
2021-10-31 17:05:02基于MATLAB的数学图形制作.pdf -
用几何画板绘制数学图形有哪些技巧
2016-08-18 10:15:00作为数学老师,你是不是整天都在为准确备课笔记而发愁,一想到有很多几何图就觉得头疼,不知不觉中就得了备课恐惧症。不用怕!用几何画板来帮助你画几何图,绝对会让你的备课恐惧症瞬间消失! 几何画板免费获取... -
备战数学建模3-MATLAB绘制各种二维图形
2022-04-12 15:43:28一、二维曲线及二维图形 1-plot(x,y)函数的基本用法 plot(x,y)函数的基本用法:其中分别用于存储x坐标和y的坐标。 我们看一下例子1,用plot函数绘制一条折线。代码如下: x = [2.5, 3.5, 4, 5] ; y = [1.5,... -
VB绘制函数图形
2021-05-01 04:44:43VB6.0绘制标准三行代码实现在Picture1中绘制黑色的水平坐标轴和垂直坐标轴,绘制白色函数图形,有规律可循的曲线图形,有Vb6的直接编译就行了,源代码免费开源。 运行环境:Windows/VB6 -
数学函数图形绘制软件Graphv4.5多语言中文官方版
2019-07-31 00:06:37Graph是一款开源软件,用来在坐标系统绘制数学图形,即函数图形。任何想要绘制函数图形的人都会发现这个软件非常有用。并且该程序绘制的图形可以很容易地粘贴到其它应用程序。它也具备一些数学运算的功能。 在菜单栏... -
Plotter:数学计算和图形绘制
2021-05-13 08:47:14Plotter是一个现代的,全平台的图形计算系统,它基于游戏引擎和数学计算库 绘图仪Android应用程序的下载链接 :link: : : 让我们从Plotter是什么开始:轻巧,跨平台,独立于网络的便携式科学计算软件。 实际上,...