python中的画布背景设置_教你用python画图—Turtle详细教程

Turtle模块绝对是吸引非专业代码开发者人员学习python入门的好工具

通过turtle几行代码的执行软件就会画出漂亮的图形,美观而且有成就感,这样一下子对python编程就产生了兴趣。


这些漂亮的图形如三角形、五角星、机器猫等。在写代码的时候改变几个参数,就可以产生新的奇形怪状。下面我就以玩转Turtle为题进入本篇的介绍。

/  什么是Turtle?/

Turtle英译过来为乌龟,不过我们介绍的不是这种动物,而是以此命名的一个绘图软件。在python文档中介绍了Turtle本身是一款简单、易上手的绘图软件,非常适合新手进入编程的世界。

该软件由Wally Feurzeig, Seymour Papert and Cynthia Solomon等在1967年使用最原始的Logo编程语言开发而成。python语言出现后,有开发者使用python对其进行了重写,变成了Python内置的一个模块。

随着python语言的大热,Turtle模块也成为了python语言简单好用的一个代名词,或者说一个很好的宣讲案例。在Python中,使用turtle模块的几行代码、改变几个参数就能绘出漂亮的图形,如果再增加一些参数,还能绘制出如笑脸、哆啦A梦、表情包等创意十足的图像,令人惊叹。

在学着绘图时,就会逐步学习python的一些基本语法、函数、模块、类和对象等基础知识;边玩边学四字成语非常恰当的描述了玩转turtle模块的境界,也非常适宜于少儿或者初学者进入Python的世界。

/  怎么玩转Turtle?/

当然在这里需要进入python编程环境,可以直接使用IDLE新建一个python文件,命名为turtle1.py。然后在这个python文件中就可以开始动手写有关turtle的代码。

Turtle是python安装时自带的内置模块,调用该模块非常简单,直接使用import方式加载:

import turtle

这也是程序的第一行代码,用于准备好使用turtle这个模块。

(1)基本动作和转向

然后就可以开始学步了。首先从走开始,让乌龟往前走100步,就在第一行代码结束后在第二行代码处写入:

turtle.forward(100)

这里forward就是往前走的方法,括号里的100为设定的步伐参数。

此时如果运行该程序,就可以看到一张画布弹出来,该画布左上角有Python Turtle Graphics标题和LOGO,在画布的中部黑三角箭头正按照较快的速度往前挪,很快到达100步那个位置。

前进的过程就像一支黑色的笔在画布上按照设定方式在画画,笔头安装了一个黑色箭头用于指示方向,非常生动有趣。如下图:

8a7676d3a43dfb186c41b1a42eb031d8.png

而此时代码看起来是这样的:

25e87a726110f3d48c34e230539026dc.png

如果想往前走300步,直接修改那个100为新的300即可。

即对于forward(参数)方法,括号里的参数是可以修改的,这在python程序里forward就是一个公用函数,其中的参数为变量,即值可以改变的参数。控制了这个参数,就可以控制前进的距离。

如果想回撤,那么就可以使用乌龟的backward方法。如在上述代码第三行加入回撤50步的代码,如下:

import turtleturtle.forward(100)turtle.backward(50)

保存新的文件同时运行,可以看到画布上画笔的黑三角箭头保持方向不变,但倒着往回50步。如图:

13a5084d92e1b2bbd359a81eb43fb895.png

上述forward和backward就是前进和后退的方法,两种方法都有括号,在括号里可以设定前进或后退的步伐(这里一步为画布上的一个像素点)

只有前进和后退显然有点单调,我们需要还可以转弯。此时就需要使用turtle的转向方法,左转为left,右转为right,如下我们在前述代码基础上增加左转方法,并设定角度为90度,然后继续往前100步

import turtleturtle.forward(100)turtle.backward(50)turtle.left(90)turtle.forward(100)

运行程序后,画布上画笔先是笔头左转了90度方向,变成了向上,然后沿着向上的方法画出了长度为100像素的一条线,此时图形变成了一个倒丁字形状:

035ac1598907b80d433df5d4948feccb.png

上述代码中left方法与forward方法一样,括号里的参数也可以随意设定,比如将left方法里的90度修改为45度:

import turtleturtle.forward(100)turtle.backward(50)turtle.left(45)turtle.forward(100)

再运行程序,此时图形就变为一个钝角形状:

1f2fe87ebcc168f48dbd0ee071ef128d.png

由此看来,改变left方法里的角度参数,画笔就可以绘制出不同形状的图形。

与左转left方法使用方法一致,右转right方法用于向右转,其中right(角度)中的角度参数也可以根据需要来设置。例如在上述左转前行的基础上,设定右转90度,然后前行100步:

import turtleturtle.forward(100)turtle.backward(50)turtle.left(45)turtle.forward(100)turtle.right(90)turtle.forward(100)

运行代码时,绘制图形效果如下:

f0faccad70998e438bcb46a08fc8abc6.png

接下来可以思考一下,如果在上述基础上将右侧下部开口的三角形状进行封闭,也就是形成一个完整的三角形呢?

很显然,此时需要动脑筋稍微计算一下。首先箭头需要右转135度,然后再前行100步:

import turtleturtle.forward(100)turtle.backward(50)turtle.left(45)turtle.forward(100)turtle.right(90)turtle.forward(100)turtle.right(135)turtle.forward(100)

再次运行程序,画笔先在原有位置顺时针方向旋转135度,笔头方向正好朝西,然后开始画一个长为100像素的直线,就得到一个右侧封闭的三角形,如下:

1d5c7659b683ba8bf94a7df00f14436e.png

到这里我们小结一下,使用turtle绘图的基本动作方法包括:forward(前进参数)、backward(后退参数)、left(左转角度)、right(右转角度)。turtle是乌龟绘图模块名,该模块中内置了这些动作方法,因此在使用的时候直接调用并给定相应参数即可。简单理解,turtle就是那支画笔,这些基本动作方法就用于控制画笔的画画方式。用python的面向对象概念来理解,这些方法属于turtle这个绘图对象,调用时使用了“.”运算符,其格式为turtle.方法名(参数)。turtle这个绘图对象还有很多类似方法,使用格式均为turtle.方法名(参数)。

(2)设置画布和画笔颜色

试想我们是否可以设置一下画布和画笔的颜色呢?肯定是可以的,调用画笔的bgcolor方法就可以设置画布背景颜色,格式为:turtle.bgcolor(颜色参数);调用其color方法就可以设置画笔颜色,格式为turtle.color(颜色参数)。这里的颜色参数直接给常见的颜色,如red、white、yellow、purple,使用的时候加单引号;也可以给RGB颜色代码,如255,255,255为白色,0,0,0为黑色。需要说明的是,设置画布背景颜色一般会放置在程序开始部分,而画笔颜色可以在需要的地方设置即可。如将上述绘制三角形的代码修改一下,增加画布背景和画笔颜色:

import turtleturtle.bgcolor('black')turtle.color('yellow')turtle.forward(100)turtle.backward(50)turtle.left(45)turtle.color('white')turtle.forward(100)turtle.right(90)turtle.forward(100)turtle.color('red')turtle.right(135)turtle.forward(100)

运行代码,此时画布变为了黑色,画笔先为黄色,然后为白色,最后为红色,效果如下:

27f9ef016b29443b34f9e543775ae719.png

上面我们通过控制turtle画笔的动作和转向角度,画出了一个三角形。想想心里是不是已经有了小小的成就感了?看来用turtle软件画画还是比较简单的。

(3)for循环语句控制重复动作

下面我们来在画布上画一个正方形。如何设计呢?首先来分析一下,我们知道正方形每条边长度相同,边与边的夹角为90度。因此可以先往前移动一个距离d,然后左转90度,转向后继续往前移动距离d,再左转90度,继续移动距离d,再来一次左转90度,移动距离d,这样起点和终点就重合了,也就画出了一个完整的正方形。我们来看代码:

import turtle
turtle.bgcolor('black')
turtle.color('yellow')
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)

执行后,画笔就在画布上画出了一个正方形:

210040f1a13a41f61496c9944d87c2bd.png

仔细观察代码,可以发现如果把turtle.forward(100)、turtle.left(90)这两行语句作为一个动作组合的话,整个代码中一共重复了四次,这种重复动作写在代码中还是有点冗长的,试想如果重复100次这个组合动作,那就得将这个组合动作代码重复编写100次,这样做肯定不科学。如何简化这种重复执行动作组合呢?python中提供了控制循环的for语句,专门用于解决这类重复性问题。我们先来修改一下画正方形的代码:

import turtleturtle.bgcolor('black')turtle.color('yellow')totalTimes=4                       #设定一共需要重复的次数for times in range(totalTimes):    #使用for语句对每一次进行设计相同的动作组合    turtle.forward(100)            #设定前移100个像素点    turtle.left(90)                #然后左转90度

执行后效果与上述图是一样的。这里代码就简化多了,代码中for语句就用于设计循环语句,其使用方法为:

for times in range(totalTimes):     #这里写需要重复的代码块。

上述画四边形时,相同动作组合重复了4次,动作组合中转向角度为90度,两个数字相乘正好为360度,从角度来说就是从起始点出发旋转一周回到原点,也恰好构成一个封闭的图形。

如果还想画一个封闭的五边形,就可以设计动作组合中转向角度为72度,重复次数为5次;如果画一个封闭的六边形,设计转向角度为60度,重复次数为6次即可。如下设计在画布上先画五边形,然后画六边形的代码:

import turtleturtle.bgcolor('black')turtle.color('yellow')#先画6边形totalTimes=6for times in range(totalTimes):    turtle.forward(100)    turtle.left(60)#然后左转向150度,并往前移动50个像素点turtle.left(150)turtle.forward(50)#最后画5边形totalTimes=5for times in range(totalTimes):    turtle.forward(100)    turtle.left(72)

执行上述代码,在画布上画出的效果是这样的:

25753a1d050796edd01c12948330925b.png

这样是不是就可以画一个圆呢?只要将画笔移动的距离设置短一些,如设置为2,转向设置也为2,那重复次数就必须设置为180,由此就可以画出一个妥妥的圆了。代码如下:

import turtleturtle.bgcolor('black')turtle.color('yellow')#画圆totalTimes=180for times in range(totalTimes):    turtle.forward(2)    turtle.left(2)

执行后效果如下:

9ff5bcf1ceca4b0cb45f6b8790380962.png

不过在turtle软件中已经内置好了画圆的方法,就是使用turtle.circle(半径参数),给定半径参数就能完成圆的绘制。如下代码:

import turtleturtle.bgcolor('black')turtle.color('yellow')#画一个半径为100的圆turtle.circle(100)

(4)设置坐标和画笔位置

到现在为止,我们已经掌握了画基本图形的方法。不过仔细观察的话也可以发现每次画画时画笔总是从画布的中心出发,因为这是turtle模块设置好了的,默认从中心点出发。

如果使用二维坐标来表示的话,画布的中心位置坐标为(0,0),即纵横坐标均为0。

我们也可以使用turtle模块的setpos方法修改其位置,如turtle.setpos(10,10)就是设置画笔纵坐标为10,横坐标也为10;如若设置为turtle.setpos(10,10),就是设置画笔横坐标为10,也就是中心点往右10个像素点,然后再往上10个像素点。


如果用数学角度来说明的话,新的起始点就在中心点右偏上45度,距离为d=(10*10+10*10)的平方根。

我们来试一下:

import turtleturtle.bgcolor('black')turtle.color('yellow')#画笔默认在画布的中心位置,坐标为(0,0)#设置画笔的位置挪到纵横坐标均为10像素的位置,即中心点往右45度方向turtle.setpos(10,10) #开始画圆,画一个半径为100像素的圆turtle.circle(100)

运行程序后,画笔先从中心位置挪到指定位置(10,10),然后开始画圆,效果图如下:

119c3fbf27ef563783c57b6700b3b966.png

这个圆画的不漂亮,起始点貌似有个尾巴,这是画笔最开始从中心位置挪到设定位置时画笔移动的痕迹。

如何去除这个痕迹呢?

我们可以这样做:使用turtle提供的提笔方法penup( ),也就是先从中心点将画笔提起来,画笔在空中挪至设定位置,然后到了设定位置再将画笔落到画布上,此时就使用落笔方法turtle.pendown( ),这样我们修改上述代码如下:

import turtleturtle.bgcolor('black')turtle.color('yellow')#提起画笔turtle.penup()#设置画笔的位置挪到纵横坐标均为10像素的位置,即中心点往右45度方向turtle.setpos(10,10)#落下画笔turtle.pendown()#开始画圆,画一个半径为100像素的圆turtle.circle(30)

再来执行代码,那个多余的尾巴就没有了。

同时如果想画图结束时那个画笔不显示,可以使用hideturtle方法,即隐藏画笔。

由此可以得到启发,使用提笔落笔的方法我们就可以在同一个画布上画出很多图形,当然前提是需要计算好位置。由此设计的时候可以先用笔参考如下坐标图给定位置:

e02437f5230193956b11594b81663c35.png

例如我们来画个笑脸试试。

import turtleturtle.bgcolor('black')turtle.color('yellow')#先画笑脸轮廓,画一个半径为100像素的圆turtle.circle(100)#提笔到左上角(-40,120)位置,画一个小圆,表示右眼turtle.penup()turtle.setpos(-40,120)turtle.pendown()turtle.circle(10)#提笔到中部位置,先画一条短线表示上嘴唇turtle.penup()turtle.setpos(-10,60)turtle.pendown()turtle.forward(20)#继续下移一定距离,画一条短弧线表示下嘴唇turtle.penup()turtle.setpos(-10,40)turtle.pendown()totalTimes=4for times in range(totalTimes):    turtle.forward(5)    turtle.left(10)#提笔到右上角(40,120)位置,画一个小圆,表示右眼turtle.penup()turtle.setpos(40,120)turtle.pendown()turtle.circle(10)#隐藏那个画笔箭头turtle.hideturtle()

运行效果如下图:

fa00e400b6f3786f115e1300b723f3e1.png

实话实说美观程度一般,不过至少画出了一个小人的脸,好像不咋笑。我们使用了turtle.penup()方法,就是提笔,而turtle模块中本身就自带了pen方法,也就是画笔方法,

可以通过pen方法来设置画笔的尺寸、颜色,也可以直接使用pencolor、pensize等方法。

具体使用格式为:

turtle.pen(pensize=10,pencolor='red',fillcolor='yellow')

或者直接设定:

turtle.pencolor('red')turtle.pensize(10)

如果需要填充颜色,就需要使用turtle的beginfill()和end_fill() 组合,格式为:

turtle.fillcolor("yellow")turtle.begin_fill()turtle.circle(100)turtle.end_fill()

我们将这些颜色的设定加入之前画的那个笑脸代码中:

import turtleturtle.bgcolor('black')turtle.color('yellow')#先画笑脸轮廓,画一个半径为100像素的圆turtle.fillcolor("yellow")turtle.begin_fill()turtle.circle(100)turtle.end_fill()#提笔到左上角(-40,120)位置,画一个小圆,表示右眼turtle.pen(pensize=10,pencolor='red',fillcolor='yellow')turtle.penup()turtle.setpos(-40,120)turtle.pendown()turtle.circle(10)#提笔到中部位置,先画一条短线表示上嘴唇turtle.penup()turtle.setpos(-10,60)turtle.pendown()turtle.forward(20)#继续下移一定距离,画一条短弧线表示下嘴唇turtle.penup()turtle.setpos(-10,40)turtle.pendown()totalTimes=4for times in range(totalTimes):    turtle.forward(5)    turtle.left(10)#提笔到右上角(40,120)位置,画一个小圆,表示右眼turtle.pen(pensize=10,pencolor='red',fillcolor='yellow')turtle.penup()turtle.setpos(40,120)turtle.pendown()turtle.circle(10)#隐藏那个画笔箭头turtle.hideturtle()

再运行代码,就得到效果图如下:

680656aa2a8efff81f52394c28775062.png

我们来画一个小车,在画的时候先需要在纸上稍微设计一下车的基本结构参数,如长度和高度等等。示例代码如下:

import turtleturtle.bgcolor('black')turtle.color('yellow')#先画后轮子turtle.fillcolor("yellow")turtle.begin_fill()turtle.circle(20)turtle.end_fill()#提笔往前挪,画前轮turtle.penup()turtle.forward(200)turtle.pendown()turtle.begin_fill()turtle.circle(20)turtle.end_fill()#画车轮廓turtle.left(90)turtle.forward(50)turtle.right(90)turtle.forward(70)turtle.left(135)turtle.forward(60)turtle.right(45)turtle.forward(2)turtle.left(90)turtle.forward(70)turtle.right(90)turtle.forward(20)turtle.left(90)turtle.forward(160)turtle.left(50)turtle.forward(60)turtle.left(40)turtle.forward(18)turtle.left(90)turtle.forward(240)#画后轮与车轮廓接触线turtle.penup()turtle.home()turtle.pendown()turtle.left(90)turtle.forward(50)turtle.write("this car is made by Mr.cao,2019")#车上方写标题turtle.penup()turtle.setpos(60,140)turtle.pendown()turtle.write("豪车!",font=("Times", 18, "bold"))#隐藏那个画笔箭头turtle.hideturtle()

运行效果如图:

ad448c2304a2bab7db7f717898570688.png

(5)使用函数

还想画别的吗?只要有足够的想象力,大部分的图都可以使用这个turtle来实现。那我们在画的过程中每完成一个图形,是否可以将这个画图形的过程包装起来给个名字,如果想画这个图形,直接调用它的名字就可以呢。肯定是可以的,而且还非常方便。python中的函数就是用来做这个事情的,其基本格式为:

def 函数名称(参数):    #执行代码

如果以画画为例,函数名称就可以命名为画图形名称,这里的参数是可选项,在画画过程中如果想采用不同颜色的笔,就可以将笔的颜色作为一个参数变量,每次使用这个函数时给定笔的颜色参数,就可以按照自己喜欢的颜色画画了。也可以将别的可以变化的参数作为变量参数来设定。

执行代码处就是代码块,用于完成整个图形绘制的过程。举个栗子,我们将前面画四边形、五边形、六边形等可以包装成一个函数,名称取为drawShape,参数包括两个,一个是totalTimes,总的边数,一个是distance,就是画画长度,代码如下:

def drawShape(totalTimes,distance):             for time in range(totalTimes):        turtle.forward(distance)        turtle.left(360/totalTimes)

这样我们想画这种类似形状的时候,只需要调用这个函数名,给定两个参数的值,就可以了。例如:

import turtleturtle.bgcolor('black')turtle.color('yellow')#编写一个函数drawShape,用于画多边形def drawShape(totalTimes,distance):             for time in range(totalTimes):        turtle.forward(distance)        turtle.left(360/totalTimes)        #调用这个函数,来画一个五边形,每边长度为80个像素drawShape(5,80)

(6)turtle时钟和事件响应

在turtle中还有动作触发响应事件,也就是通过鼠标或键盘来控制画画开始或结束,还可以设置时钟,这样我们就可以画点动画了,当然是较为简单的。例如我们将上述画笑脸和画车两个作品放在一个文件里,先画笑脸,等待2秒后,再画出车来,代码参考如下:

import turtleturtle.bgcolor('black')#定义一个画车的函数def drawCar():    turtle.color('yellow')    #先画后轮子    turtle.fillcolor("yellow")    turtle.begin_fill()    turtle.circle(20)    turtle.end_fill()    #提笔往前挪,画前轮    turtle.penup()    turtle.forward(200)    turtle.pendown()    turtle.begin_fill()    turtle.circle(20)    turtle.end_fill()    #画车轮廓    turtle.left(90)    turtle.forward(50)    turtle.right(90)    turtle.forward(70)    turtle.left(135)    turtle.forward(60)    turtle.right(45)    turtle.forward(2)    turtle.left(90)    turtle.forward(70)    turtle.right(90)    turtle.forward(20)    turtle.left(90)    turtle.forward(160)    turtle.left(50)    turtle.forward(60)    turtle.left(40)    turtle.forward(18)    turtle.left(90)    turtle.forward(240)    #画后轮与车轮廓接触线    turtle.penup()    turtle.home()    turtle.pendown()    turtle.left(90)    turtle.forward(50)    turtle.write("this car is made by Mr.cao,2019")    #车上方写标题    turtle.penup()    turtle.setpos(60,140)    turtle.pendown()    turtle.write("豪车!",font=("Times", 22, "bold"))    #隐藏那个画笔箭头    turtle.hideturtle()#定义个画笑脸的函数def drawFace():    turtle.color('yellow')        turtle.speed(0.1)    #先画笑脸轮廓,画一个半径为100像素的圆    turtle.circle(100)    #提笔到左上角(-40,120)位置,画一个小圆,表示右眼    turtle.penup()    turtle.setpos(-40,120)    turtle.pendown()    turtle.circle(10)    #提笔到中部位置,先画一条短线表示上嘴唇    turtle.penup()    turtle.setpos(-10,60)    turtle.pendown()    turtle.forward(20)    #继续下移一定距离,画一条短弧线表示下嘴唇    turtle.penup()    turtle.setpos(-10,40)    turtle.pendown()    totalTimes=4    for times in range(totalTimes):        turtle.forward(5)        turtle.left(10)    #提笔到右上角(40,120)位置,画一个小圆,表示右眼    turtle.penup()    turtle.setpos(40,120)    turtle.pendown()    turtle.circle(10)    #提示语    turtle.penup()    turtle.setpos(-80,-30)    turtle.pendown()    turtle.write("等待2秒中,准备带你去看豪车了哦!",font=32)    #隐藏那个画笔箭头    turtle.hideturtle()    #先画笑脸,等待2s后重置画笔,然后开始画车turtle.ontimer(drawFace(),t=2000)turtle.reset()turtle.onclick(drawCar())

运行这个文件,整个过程变成了一个简单的动画,示例如下:

84bdb4d41dd05d72d258bd37df480b7e.gif

(7)复杂绘图示例

用turtle画出简单的图形容易,如果想画出复杂的图形则有点考验耐心和思维过程。网上有很多turtle绘制的复杂图形,那代码就会大段大段的写。限于篇幅我们不再一一复现这些复杂图形。


幸好在turtle模块里就有一些案例,在刚才命名的turtle1.py主菜单里的help菜单就有turtle demo

294435e6b58b34bc408ba7a8c9de19f9.png

点击之后就出来一个窗口如下:

75da47b3cc7167267306003fd528c61d.png

从左侧的examples可以选择其中一种案例,窗口左侧为turtle代码,右侧点击start可以显示出对应的绘图效果。

如上述的forest案例,点击start后绘制出来三棵树,非常漂亮。这些案例中使用到了python的面向对象、函数、随机、时钟等多种思维和知识,也是python知识的一种综合应用,如果方法和毅力得当,确实是提升学习和应用python的有效手段。

由稻粒儿到稻谷团儿 https://zhuanlan.zhihu.com/p/90712358

往期优秀文章

c1f57b33821a872e35f9be394453ac47.png

5c4e9f4a9e406aec75b54a7f3765127a.png

亲,需要你的“分享”“在看”

c8057af2afa4d2715cfacb72cbdbd6da.png

IT入门 感谢关注

程序员题库→程序员用的单词表→练习地址:www.520mg.com/it

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

城市大脑,是工程问题,但首先是基础科学问题

2020年,在5G,大数据,人工智能、区块链、新基建等一轮轮科技浪潮下,城市大脑开始逐步成为新的城市建设和前沿科技热点。到2020年6月已经有近500多个城市宣布建设“城市大脑”,包括阿里,华为,百度…

JOptionPane弹框常用实例

最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法。 很方便的,于是就简单的整理了一下。 1.1 showMessageDialog 显示一个带有OK 按钮的模态对话框。 下面是几个使用showMessageDialog 的例子: Java代码 JOption…

从5G到6G的思考:需求、挑战、技术趋势

来源:5G作者:易芝玲:中国移动首席科学家。王森,韩双锋,崔春风:中国移动通信研究院。王亚峰:北京邮电大学信息与通信工程学院。未来智能实验室的主要工作包括:建立AI智能系统智商评测…

VS2017C++单元测试

0、欢迎食用 希望对点进来的你有所帮助。全文记流水账,内心想法如示例项目名称。1、建立需测试的项目 新建项目正常书写.h 和.cpp文件2、新建单元测试 右击解决方案 -> 添加 -> 新建项目 Visual C -> 测试 -> 本机单元测试项目点击确定出现3、添加被测项…

ncf 推荐系统_浅析神经协同过滤NCF在推荐系统的应用

NCF在推荐领域应用背景CF,也就是协同过滤,在推荐领域有极其广泛的应用,应该没有谁的智能推荐系统是没用到过CF的。CF其实就是挖掘user和item的交互关系,然后生成I2I或者U2I表示向量。传统的CF从数学角度上还是偏行为统计计算的&am…

2020身高体重标准表儿童_2020年儿童标准体重表出炉!过胖影响发育!(附身高体重标准表)...

近年来,孩子们长胖的趋势越来越明显,一些疾病也有年轻化的趋势。很多家长们平时也很注意饮食搭配和运动,但孩子还是一不小心就“超重”了,真的防不胜防。相信和我一样担忧孩子家长肯定不少。今天就来和大家讲讲,关于孩…

游戏的未来是什么?

“我们还没有真正跨过VR 1.0,无绳VR要么不可靠要么非常贵。我们正在朝VR 2.0发展,用的是眼球追踪,有更大的视野、更高的分辨率、更好的音频和六个自由度,但这些领域仍需要进一步研究。”来源丨Forbes作者丨Matt Gardner编译丨科技…

AI仿生:人类进化新可能

来源: 脑极体看过《银翼杀手》这部开创赛博朋克风格科幻电影的人,一定会对电影中仿生人罗伊贝蒂印象深刻,尤其是电影结尾时反派男主在滂沱大雨中的临终独白:我目睹过你们绝对不会相信的东西:战舰在猎户星座的边缘燃烧&…

python 获取 字典中的指定键_python中字典方法的详细教程

上篇文章讲到了python字典的基础知识,今天继续python中哈希(字典的应用)方法的应用。前章回顾:python字典的应用及案例分析字典方法:dict.clear() 删出字典内所有的元素。dict.copy() 返回字典的一个浅复制。dict.fromkeys(seq[,val]):创建一…

事务基本信息

一、事务的定义 事务(Transaction)是由一系列对系统数据进行访问与更新的操作所组成的一个程序执行逻辑单元(Unit),侠义上的事务特质数据库事务。1)当多个应用程序并发访问数据库时,事务可以在这…

android 人脸识别_小模型,高精度!小视科技推出极致轻量型人脸识别SDK

AI 落地为王时代的到来,使得人脸识别的精度和速度备受人们关注。近年来,随着模型压缩、量化技术的进步,模型运行速度也越来越快。对于一些特定的人脸检测任务,轻量型的人脸识别SDK即可满足需求。▲图源网络轻量级架构的显著特征便…

机器视觉基础知识详解

来源:工业机器人随着工业4.0时代的到来,机器视觉在智能制造业领域的作用越来越重要,为了能让更多用户获取机器视觉的相关基础知识,包括机器视觉技术是如何工作的、它为什么是实现流程自动化和质量改进的正确选择等。小编为你准备了…

截屏没有了_华为手机居然有6种截屏花招,很多人不知道,你会用哪几种?

华为手机越来越受国民的欢迎,而且华为手机的功能挺多挺实用的。就比如:支持画“一”进行分屏操作,可以让我们一边追剧一边聊天,真的特别方便。我使用华为手机也已经有三个年头了,在日常生活中看到一些有用的内容&#…

科技巨头纷纷从刷脸转向“刷手”,指纹如何扛起生物识别大旗?

来源:CSDN日前,IBM 高调宣布不再提供任何人脸识别服务和人脸分析软件及不再继续研发相关技术,正式退出市场。紧随其后,亚马逊也宣布,将暂停警方使用其人脸识别技术一年,转向扫描手掌特征来识别用户身份。人…

宜春万申智能装备携粉体自动化产线解决方案盛装亮相2024济南生物发酵展

宜春万申智能装备股份有限公司受邀盛装亮相2024第12届济南国际生物发酵展 展位号:1号馆A16-2展位 2024第12届国际生物发酵产品与技术装备展览会(济南)于3月5-7日在山东国际会展中心盛大召开,全方面展示:生物发酵、生…

浙大绘制首个地球微生物“社会关系”网络

来源:浙江大学图片由课题组提供单个微生物看不见、摸不着,但却无时不在、无处不在。但微生物的功能绝非“分解者”这么简单,影响到温室气体的、绿色生产的、人体健康的方方面面,其群落组成和功能具有极高的复杂性。如何更好认识微…

原型链相关

1.创建对象有几种方法 // 第一种var object1 { name:fang};var object2 new Object({name: fang});console.log(object1, object2);  //Object {name: "fang"} Object {name: "fang"}// 第二种var M function(name){this.name name};var object3 ne…

甘特图制作_如何用Excel快速制作甘特图?(超详细!)

甘特图作为现代项目管理中一项重要的管理工具,它能够帮助你考虑资源、成本等项目中重要的元素,并且能够通过图形直观的观察到项目中所要完成的任务、开始与结束时间,每项任务所需时间,某项任务在某个时间段内完成等都能直观的呈现…

后MATLAB时代的七种开源替代,一种堪称完美!

来源:中国指挥与控制学会近日,有哈工大学生表示收到了正版软件取消激活的通知,而在与 MATLAB 开发公司 MathWorks 交涉之后,被告知由于美国政府实体名单的原因,相关授权已被中止。目前,哈尔滨工业大学、哈尔…

训练深度学习_深度学习训练tricks整理1

深度学习训练tricks整理1环境:pytorch1.4.0 Ubuntu16.04参考:数据增强策略(一)​mp.weixin.qq.comhttps://zhuanlan.zhihu.com/p/104992391​zhuanlan.zhihu.com深度神经网络模型训练中的 tricks(原理与代码汇总&…