首页 > 其他分享 >基础-几何

基础-几何

时间:2024-06-22 09:59:14浏览次数:22  
标签:f1 f2 ang 矢量 基础 bmatrix 几何 曲线

基础-几何

1.1.矢量

1.1.1.定义

以三维空间为例,定义三维空间坐标系x,y,z对应三个单位矢量ijk

在这里插入图片描述

上述ijk另一个数值表示形式为(1,0,0),(0,1,0),(0,0,1)。

1.1.2.运算

矢量立足于其数值表现形式支持一下运算:

1.矢量相加

2.矢量相减

3.矢量乘以数值

4.矢量的点积

设矢量a(x1,y1,z1),矢量b(x2,y2,z2),ang为ab间的夹角。

则:a****b=|a||b|cos(ang) = x1x2+y1y2+z1z2;

其中ang采用弧度单位。其取值范围为[0, PI]。矢量方向相同时角度为0,方向相反时角度为PI,垂直时角度为PI/2。值得注意的是点积的结果是数值。

5.矢量的叉积

设矢量a(x1,y1,z1),矢量b(x2,y2,z2),ang为ab间的夹角。

首先矢量ab的叉积结果是一个矢量。该矢量可表示为c(y1z2-z1y2, z1x2-x1z2, x1y2-y1x2)。

然后,c的模符合:|c|=|a||b|sin(ang)。

其中ang采用弧度单位。其取值范围为[0, PI]。矢量方向相同时角度为0,方向相反时角度为PI,垂直时角度为PI/2。

值得注意的是叉积的结果是矢量。且矢量的方向可通过右手定则确定。在ab夹角不为0的情况下,其叉积必然垂直于ab所在的平面。也必然分别垂直于ab

1.2.平面,曲线,曲面基础表达式

1.2.1.空间平面方程

三维空间平面方程形式为:ax + by + cz + d = 0

给定上述形式的平面方程,n(a,b,c)必然是平面的方向矢量。

平面的法向矢量垂直于平面内任何一条直线。

给定平面内不共线p0,p1,p2三个点可以唯一确定平面方程:

1.求取矢量p0p1,p1p2的叉积。用叉积的x,y,z作为a,b,c。

2.带入p0(x0, y0, z0),易于得到d。

1.2.2.曲线与曲面表示方式

1.2.2.1.显示表示

通用形式为:
y = f ( x ) ; y = f(x); y=f(x);
以直线为例:y = kx+b。此表达的缺陷是对形如x = 1这样平行y轴直线无法表示。

1.2.2.2.隐式表示

1.对二维曲线

通用形式为:
F ( x , y ) = 0 ; F(x, y) = 0; F(x,y)=0;
对直线,其隐式表示为:
a x + b y + c = 0 ; ax + by + c = 0; ax+by+c=0;
对圆锥曲线,其隐式表示为:
x x + y y + 2 x y + d x + e y + f = 0 ; xx+yy+2xy+dx+ey+f=0; xx+yy+2xy+dx+ey+f=0;
2.对三维曲面

通用形式为:
F ( x , y , z ) = 0 ; F(x,y,z) = 0; F(x,y,z)=0;
对平面:
a x + b y + c z + d = 0 ; ax+by+cz+d=0; ax+by+cz+d=0;
对圆心位于原点,半径为r的球面:
x x + y y + z z − r r = 0 ; xx+yy+zz-rr = 0; xx+yy+zz−rr=0;
隐式表示更通用(相对于显式表示下单一方程无法描述某些场景而言),但难以求解曲线,曲面上的点。

1.2.2.3.参数表示

1.对曲线

二维曲线通用形式为:
x = f 1 ( t ) ; y = f 2 ( t ) ; 0 < = t < = 1 ; x = f1(t); y = f2(t);0<=t<=1; x=f1(t);y=f2(t);0<=t<=1;
三维曲线通用形式为:
x = f 1 ( t ) ; y = f 2 ( t ) ; z = f 3 ( t ) ; 0 < = t < = 1 ; x=f1(t);y=f2(t);z=f3(t);0<=t<=1; x=f1(t);y=f2(t);z=f3(t);0<=t<=1;
以启点p0(x0, y0, z0),终点p1(x1, y1, z1)的直线的参数表示为例:
x = ( 1 − t ) x 0 + t x 1 ; y = ( 1 − t ) y 0 + t y 1 ; z = ( 1 − t ) z 0 + t z 1 ; 0 < = t < = 1 ; x=(1-t)x0+tx1;y=(1-t)y0+ty1;z=(1-t)z0+tz1;0<=t<=1; x=(1−t)x0+tx1;y=(1−t)y0+ty1;z=(1−t)z0+tz1;0<=t<=1;
在曲线的参数表示下,给定曲线上任意一点p(x, y, z),将其看成矢量p。这时可以为曲线规定方向。曲线方向对应于曲线上参数增加的方向。

给定曲线参数方程,对其x,y,z的每个维度分别对t求导,
x ′ = f 1 ′ ( t ) ; y ′ = f 2 ′ ( t ) ; z ′ = f 3 ′ ( t ) ; 0 < = t < = 1 ; x'=f1'(t);y'=f2'(t);z'=f3'(t);0<=t<=1; x′=f1′(t);y′=f2′(t);z′=f3′(t);0<=t<=1;
给定t值,p’(x’, y’, z’)可认为曲线在t值时候的切线方向矢量。

在曲线的参数表示形式下有个值得关注的特例:曲线的基表示形式。

三维曲线基表示形式为:
x = a 0 , 0 f 0 , 0 ( t ) + a 0 , 1 f 0 , 1 ( t ) + . . . + a 0 , n f 0 , n ( t ) ; x=a_{0,0}f_{0,0}(t)+a_{0,1}f_{0,1}(t)+...+a_{0,n}f_{0,n}(t); x=a0,0​f0,0​(t)+a0,1​f0,1​(t)+...+a0,n​f0,n​(t);

y = a 1 , 0 f 1 , 0 ( t ) + a 1 , 1 f 1 , 1 ( t ) + . . . + a 1 , n f 1 , n ( t ) ; y=a_{1,0}f_{1,0}(t)+a_{1,1}f_{1,1}(t)+...+a_{1,n}f_{1,n}(t); y=a1,0​f1,0​(t)+a1,1​f1,1​(t)+...+a1,n​f1,n​(t);

z = a 2 , 0 f 2 , 0 ( t ) + a 2 , 1 f 2 , 1 ( t ) + . . . + a 2 , n f 2 , n ( t ) ; z=a_{2,0}f_{2,0}(t)+a_{2,1}f_{2,1}(t)+...+a_{2,n}f_{2,n}(t); z=a2,0​f2,0​(t)+a2,1​f2,1​(t)+...+a2,n​f2,n​(t);

其中每个f_{i, j}(t)均为一个独立的关于t的函数。a_{i,j}为系数。

2.对曲面

曲面的参数表示

三维曲面通用表示形式为:
x = f 1 ( u , v ) ; y = f 2 ( u , v ) ; z = f 3 ( u , v ) ; x=f1(u,v); y=f2(u,v); z=f3(u,v); x=f1(u,v);y=f2(u,v);z=f3(u,v);
即每个分量均通过一个由u,v构成的独立函数来决定。

通过确定u,v数值,可以唯一确定三维曲面上一个点。

分别对每个分量上方程对u求取导数,可以获得给定u值下,曲面上点的切线方向矢量。

分别对每个分量上方程对v求取导数,可以获得给定v值下,曲面上点的切线方向矢量。

在上述两个方向矢量不平行或反向下,求取两个矢量的叉积,即可得到曲面上(u,v)所确定点上的法线方向矢量。

在曲面的参数表示形式下有个值得关注的特例:曲面的基表示形式。
p ( u , v ) = ∑ i = 0 m ∑ j = 0 n f 1 i ( u ) f 2 j ( v ) a i , j p(u, v) = \sum_{i=0}^{m} \sum_{j=0}^{n} f1_{i}(u) f2_{j}(v) a_{i,j} p(u,v)=i=0∑m​j=0∑n​f1i​(u)f2j​(v)ai,j​
值得注意的是:上述p(u, v)是矢量形式,即其由三个分量(x, y, z)组成。f1_{i}(u),f2_{j}(v)分别是关于u与v的独立函数,也是矢量形式,即由三个分量组成。每个分量均是一个独立的关于因变量的函数。a_{i}{j}是系数,也是矢量形式,即由三个分量组成。

后续的贝塞尔曲面,样条曲面,Nurbs曲面均会采用此形式,到时再具体分析。

1.3.连续性

1.3.1.参数连续性

零阶连续性:相邻两段曲线在邻接点处坐标一致。

一阶连续性:相邻两段曲线在邻接点处一阶导数相同。此时坐标也必然一致。

二阶连续性:相邻两段曲线在邻接点处二阶导数相同。此时一阶导数也必然 。

1.3.2.几何连续性

零阶连续性:相邻两段曲线在邻接点处坐标一致。

一阶连续性:相邻两段曲线在邻接点处一阶导数成比例。

二阶连续性:相邻两段曲线在邻接点处一阶导数,二阶导数均成比例。

成比例的意思以三维曲线参数表示为例,某点处一阶导数,针对x,y,z分量分别有一个值。假设曲线1在邻接点一阶导数为p1’(x1’, y1’, z1’),假设曲线2在邻接点一阶导数为p2’(x2’, y2’, z2’),有:
x 1 ′ = a ∗ x 2 ′ ; y 1 ′ = a ∗ y 2 ′ ; z 1 ′ = a ∗ z 2 ′ ; x1' = a*x2';y1' = a*y2';z1' = a*z2'; x1′=a∗x2′;y1′=a∗y2′;z1′=a∗z2′;
上述a为系数。

1.4.曲线的自然参数方程

应用弧长积分公式,可计算该曲线上任意点p(x, y, z)到p0之间的弧长。这样曲线上点p的位置与该点处的弧长s是一一对应的。以弧长s作为曲线方程参数。
x = f 1 ( s ) ; y = f 2 ( s ) ; z = f 3 ( s ) ; x=f1(s);y=f2(s);z=f3(s); x=f1(s);y=f2(s);z=f3(s);
值得注意的是可以证明:
∣ p ′ ( s ) ∣ = s q r t ( f 1 ′ ( s ) 2 + f 2 ′ ( s ) 2 + f 3 ′ ( s ) 2 ) = 1 。 |p'(s)|=sqrt(f1'(s)^2+f2'(s)^2+f3'(s)^2)=1。 ∣p′(s)∣=sqrt(f1′(s)2+f2′(s)2+f3′(s)2)=1。
求取弧长:
L = ∫ a b ( x ′ ( t ) ) 2 + ( y ′ ( t ) ) 2 + ( z ′ ( t ) ) 2 d t L = \int_{a}^{b} \sqrt{(x'(t))^2 + (y'(t))^2 + (z'(t))^2} dt L=∫ab​(x′(t))2+(y′(t))2+(z′(t))2 ​dt
其中a,b是参数t的变化区间。

推导过程为:
d x = d x d t d t = x ′ ( t ) d t dx = \frac{dx}{dt} dt = x'(t) dt dx=dtdx​dt=x′(t)dt

d y = d y d t d t = y ′ ( t ) d t dy = \frac{dy}{dt} dt = y'(t) dt dy=dtdy​dt=y′(t)dt

d z = d z d t d t = z ′ ( t ) d t dz = \frac{dz}{dt} dt = z'(t) dt dz=dtdz​dt=z′(t)dt

d s = s q r t ( d x 2 + d y 2 + d z 2 ) = ( x ′ ( t ) ) 2 + ( y ′ ( t ) ) 2 + ( z ′ ( t ) ) 2 d t ds = sqrt(dx^2+dy^2+dz^2)=\sqrt{(x'(t))^2 + (y'(t))^2 + (z'(t))^2} dt ds=sqrt(dx2+dy2+dz2)=(x′(t))2+(y′(t))2+(z′(t))2 ​dt

1.5.活动标架

对曲线的自然参数方程:
x = f 1 ( s ) ; y = f 2 ( s ) ; z = f 3 ( s ) ; x=f1(s);y=f2(s);z=f3(s); x=f1(s);y=f2(s);z=f3(s);
取坐标系原点和曲线p上的动点P重合,使得整个坐标系随P点的运动而运动,这种坐标系称为活动坐标系。

1.第一个坐标轴

零矢量axis1(f1’(s), f2’(s), f3’(s))为第一个坐标轴的方向,前面已经说明axis1是单位矢量。

2.第二个坐标轴

由于
f 1 ′ ( s ) 2 + f 2 ′ ( s ) 2 + f 3 ′ ( s ) 2 = 1 ; f1'(s)^2+f2'(s)^2+f3'(s)^2=1; f1′(s)2+f2′(s)2+f3′(s)2=1;
上式两边对s求取导数:
2 f 1 ′ ( s ) f 1 ′ ′ ( s ) + 2 f 2 ′ ( s ) f 2 ′ ′ ( s ) + 2 f 3 ′ ( s ) f 3 ′ ′ ( s ) = 0 ; 2f1'(s)f1''(s)+2f2'(s)f2''(s)+2f3'(s)f3''(s)=0; 2f1′(s)f1′′(s)+2f2′(s)f2′′(s)+2f3′(s)f3′′(s)=0;
看成矢量点积的形式,可得:
( f 1 ′ ( s ) , f 2 ′ ( s ) , f 3 ′ ( s ) ) ∗ ( f 1 ′ ′ ( s ) , f 2 ′ ′ ( s ) , f 3 ′ ′ ( s ) ) = 0 ; (f1'(s),f2'(s),f3'(s))*(f1''(s),f2''(s),f3''(s))=0; (f1′(s),f2′(s),f3′(s))∗(f1′′(s),f2′′(s),f3′′(s))=0;
所以,可知矢量(f1’‘(s),f2’‘(s),f3’'(s))和axis1垂直,令其为第二个坐标轴。由于其不是单位矢量。假设此方向上单位矢量为axis2axis2也称为主法线矢量,其总是指向曲线凹入的方向。有:
( f 1 ′ ′ ( s ) , f 2 ′ ′ ( s ) , f 3 ′ ′ ( s ) ) = k ( s ) ∗ a x i s 2 ; (f1''(s),f2''(s),f3''(s))=k(s)*axis2; (f1′′(s),f2′′(s),f3′′(s))=k(s)∗axis2;
其中k(s)是一个和s取值有关的系数。称其为曲线在s处的曲率。称为1/k(s)为曲率半径。曲率半径反映的是曲线在此点处的弯曲程度。

3.第三个坐标轴

axis1叉积axis2得到一个垂直于两者的矢量,且此矢量必然是单位矢量,记为axis3

axis3方向为第三个坐标轴方向。也称其为单位副法线矢量。

这样便构成一个活动坐标系。

通过点P,由axis1axis2构成的平面称为密切平面。

通过点P,由axis1axis3构成的平面称为从切平面。

通过点P,由axis2axis3构成的平面称为法平面。

补充知识:三维曲线挠率。

从上述可知axis3矢量的每个分量也是关于s的方程。记axis3为(t1(s), t2(s), t3(s)),则(t1’(s), t2’(s), t3’(s))反映s处密切平面法向变化率。

已知:
( t 1 ′ ( s ) , t 2 ′ ( s ) , t 3 ′ ( s ) ) = − a ∗ a x i s 2 ; (t1'(s), t2'(s), t3'(s))= -a*axis2; (t1′(s),t2′(s),t3′(s))=−a∗axis2;
其中a为系数。称其为挠率。

1.6.型值点,插值,逼近,控制点

1.型值点

通过测量得到的一组描述曲线或曲面几何形状的数据点。

2.插值

基于型值点得到其他点的值。

3.逼近

型值点太多时,构造曲线使其通过所有型值点变得困难,此时构造一个曲线方程在某种意义下最佳逼近这些型值点。

插值与逼近统称为拟合。

4.控制点

用来控制或调整曲线曲面形状的控制多边形的顶点。

1.7.三维变换与投影

1.7.1.坐标系

1.世界坐标系

右手坐标系:

右手握拳从x到y,大拇指方向为z轴。

左手坐标系:

左手握拳从x到y,大拇指方向为z轴。

2.建模坐标系

对物体建模使用的坐标系,也叫局部坐标系。

3.观察坐标系

观察坐标系:以眼睛/相机作为原点,视线方向作为z方向,采用左手坐标系。

4.屏幕坐标系

三维显示上三维空间物体最终在视线方向到物体中间的某个平面(屏幕)上显示。显示的是三维物体在此平面的投影。对屏幕坐标系,原点一般位于窗口客户区中心,x轴水平向右,y轴垂直向上。

5.设备坐标系

显示设备自身持有一个坐标系。原点位于平面左上角,x轴水平向右,y轴垂直向下,基本单位为像素。

1.7.2.三维几何变换

对物体的变换,最后都是通过对三维点的变换来切入的。通过齐次矩阵来作为实现点变换的工具。

1.平移变换

希望对P(x,y,z)执行三个轴为(tx,ty,tz)的平移变换。令平移后的点为P’(x’, y’, z’)。
x ′ = x + t x ; y ′ = y + t y ; z ′ = z + t z ; x'=x+tx;y'=y+ty;z'=z+tz; x′=x+tx;y′=y+ty;z′=z+tz;
用齐次矩阵进行等价表示为:
[ 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 ] [ x y z 1 ] = [ x + t x y + t y z + t z 1   ] \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1\\ \end{bmatrix} = \begin{bmatrix} x + t_x \\ y + t_y \\ z + t_z \\ 1\ \end{bmatrix} ​1000​0100​0010​tx​ty​tz​1​ ​xyz1​ ​= ​x+tx​y+ty​z+tz​1 ​
上述齐次矩阵即为三维平移变换矩阵。

2.旋转变换

旋转变换首先得有旋转轴。右手大拇指指向旋转轴正向,四指的转向为转角正方向。

2.1.饶x轴旋转

希望对P(x,y,z)执行绕x轴的旋转变换。令旋转ang角度后的点为P’(x’, y’, z’)。

我们分析绕轴旋转:

a.确定投影点

轴是三维直线。首先求取三维点到此三维直线投影点。

投影点位于直线上,点和投影构成的矢量和直线垂直。

以绕x轴为例,设P(x0,y0,z0),则投影点为:P0(x0, 0, 0)。

b.确定投影半径

投影半径为点和投影点距离。

以绕x轴为例,设P(x0,y0,z0),则投影半径为:
∣ P P 0 ∣ = s q r t ( y 0 2 + z 0 2 ) ; |PP0|=sqrt(y0^2+z0^2); ∣PP0∣=sqrt(y02+z02);
c.确定旋转结果

三维点绕轴旋转形成的是三维圆形曲线。

以绕x轴为例,设P(x0, y0, z0)。

旋转形成的曲线构成的圆形曲线为以投影点为圆心,以投影半径为半径,落在以x轴为法线平面上。此曲线方程为:
x = x 0 ; ( y − y 0 ) 2 + ( z − z 0 ) 2 = s q r t ( y 0 2 + z 0 2 ) ; x = x0; (y-y0)^2+(z-z0)^2=sqrt(y0^2+z0^2); x=x0;(y−y0)2+(z−z0)2=sqrt(y02+z02);
将上述方程以旋转角度为参数的参数方程形式给出,结果为:
x = x 0 ; y = y 0 c o s ( a n g ) − z 0 s i n ( a n g ) ; z = y 0 s i n ( a n g ) + z 0 c o s ( a n g ) ; x=x0;\\ y=y0cos(ang)-z0sin(ang);\\ z=y0sin(ang)+z0cos(ang);\\ x=x0;y=y0cos(ang)−z0sin(ang);z=y0sin(ang)+z0cos(ang);
用齐次矩阵进行等价表示为:
[ 1 0 0 0 0 c o s ( a n g ) − s i n ( a n g ) 0 0 s i n ( a n g ) c o s ( a n g ) 0 0 0 0 1 ] [ x y z 1 ] = [ x y c o s ( a n g ) − z s i n ( a n g ) y s i n ( a n g ) + z c o s ( a n g ) 1   ] \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & cos(ang) & -sin(ang) & 0 \\ 0 & sin(ang) & cos(ang) & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1\\ \end{bmatrix} = \begin{bmatrix} x \\ ycos(ang)-zsin(ang) \\ ysin(ang)+zcos(ang) \\ 1\ \end{bmatrix} ​1000​0cos(ang)sin(ang)0​0−sin(ang)cos(ang)0​0001​ ​xyz1​ ​= ​xycos(ang)−zsin(ang)ysin(ang)+zcos(ang)1 ​
2.2.类似的可以得到绕y轴旋转的齐次矩阵表示形式
[ c o s ( a n g ) 0 s i n ( a n g ) 0 0 1 0 0 − s i n ( a n g ) 0 c o s ( a n g ) 0 0 0 0 1 ] [ x y z 1 ] = [ z s i n ( a n g ) + x c o s ( a n g ) y z c o s ( a n g ) − x s i n ( a n g ) 1   ] \begin{bmatrix} cos(ang) & 0 & sin(ang) & 0 \\ 0 & 1 & 0 & 0 \\ -sin(ang) & 0 & cos(ang) & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1\\ \end{bmatrix} = \begin{bmatrix} zsin(ang)+xcos(ang) \\ y \\ zcos(ang)-xsin(ang) \\ 1\ \end{bmatrix} ​cos(ang)0−sin(ang)0​0100​sin(ang)0cos(ang)0​0001​ ​xyz1​ ​= ​zsin(ang)+xcos(ang)yzcos(ang)−xsin(ang)1 ​
2.3.用类似方法可得绕z轴旋转的齐次矩阵表示形式
[ c o s ( a n g ) − s i n ( a n g ) 0 0 s i n ( a n g ) c o s ( a n g ) 0 0 0 0 1 0 0 0 0 1 ] [ x y z 1 ] = [ x c o s ( a n g ) − y s i n ( a n g ) x s i n ( a n g ) + y c o s ( a n g ) z 1   ] \begin{bmatrix} cos(ang) & -sin(ang) & 0 & 0 \\ sin(ang) & cos(ang) & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1\\ \end{bmatrix} = \begin{bmatrix} xcos(ang)-ysin(ang) \\ xsin(ang)+ycos(ang) \\ z \\ 1\ \end{bmatrix} ​cos(ang)sin(ang)00​−sin(ang)cos(ang)00​0010​0001​ ​xyz1​ ​= ​xcos(ang)−ysin(ang)xsin(ang)+ycos(ang)z1 ​

标签:f1,f2,ang,矢量,基础,bmatrix,几何,曲线
From: https://blog.csdn.net/x13262608581/article/details/139876382

相关文章

  • 【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(三)-shell语法
    主要通过讲解shell中的一些基本语法,可以当作日常的笔记来进行查询和记忆。文章目录前言一、shell二、shell语法1.运行方式2.注释3.变量4.默认变量 5.数组 总结前言主要通过讲解shell中的一些基本语法,可以当作日常的笔记来进行查询和记忆。提示:以下是本篇......
  • Linux基础命令————浅显易懂的带你了解Linux
    首先,Xshell连接云服务器Linux的语法更接近PowerShellPowerShell和Window命令行都可以对Window操作系统进行操作,但是PowerShell语法更全一些。默认打开这个目录用哪个用户登录的计算机,最后就会到哪个目录下用ls指令可以查看目录下,有哪些文件Windows命令行由于没有这个......
  • 一、接口测试基础
    1.接口的概念及本质:接口:实现前端和后端之间数据通信的桥梁,本质就是数据的输入与输出的过程。接口测试:接口的提供方、接口的调用方之间的交互、逻辑处理。接口测试的整个实现过程基于通信协议(HTTP),通过该协议发送请求(Request)给服务器,服务器处理并返回相应结果(Respon......
  • 0基础学C++ | 第03天 | 基础知识 |算术运算符 | 赋值运算符 | 比较运算符 | 逻辑运算
    前言前面已经讲了,数据类型以及求数据类型所占的空间0基础学C++|第02天|基础知识|sizeof关键字|浮点型|字符型|转义字符|字符串|布尔类型|数据的输入-CSDN博客,现在讲运算符算术运算符 作用:用于处理四则运算#include<iostream>usingnamespacestd;in......
  • nodejs从基础到实战学习笔记-模块化、包
    二、模块化2.1什么是模块化模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。2.1.1把代码进行模块化拆分的好处提高了代码的复用性提高了代码的可维护性可以实现按需加载•如果程序设计的规......
  • 零基础学习python-1.安装python
    1.安装python众所周知,若想学习python就得有一台电脑,如果手机端的同学也想玩python编程的话,那我建议你安装一个QPython玩玩就可以,若是想跟深度学习,那请各位少爷小姐们,一同跟随我,一步步教会你安装python及其编译器第一步.找python官网注意:请识别官网,python是免费的,别选错了......
  • Python基础教程(二十四):日期和时间
    ......
  • 游戏AI的创造思路-技术基础-机器学习(2)
    本篇存在大量的公式,数学不好的孩子们要开始恶补数学了,尤其是统计学和回归方程类的内容。小伙伴们量力而行~~~~~游戏呢,其实最早就是数学家、元祖程序员编写的数学游戏,一脉相承传承至今,囊括了更多的设计师、美术家、音乐家、作家、导演、演员等等,发展形成了今天大家看到的繁花......
  • Java基础:throw和throws的详解
    总结来说,throw是用来抛出一个具体的异常实例,而throws是用来声明方法可能会抛出哪些类型的异常,是对调用者的一种通知和要求。1.throw作用:throw关键字用于在方法体内实际抛出一个异常实例。当程序运行到throw语句时,指定的异常会被创建并抛出,立即终止当前方法的执行,并将控制权......
  • 【基础教学】保姆级手把手教学使用VMware安装kali虚拟机
    目录序言1.下载镜像1.1下载kali2.安装虚拟机2.1VM创建虚拟机2.2加载镜像2.3kali设置中文序言本文主要讲述如何使用VMware安装kali虚拟机。1.下载镜像1.1下载kali首先访问kali镜像地址,根据个人需求下载相应版本,我这里下载64位everything版本https://www.kali.org......