[学习笔记]计算机图形学(一)

news2024/10/6 16:27:05

计算机图形学学习笔记(一)

什么是计算机图形学

计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。

什么是好的画面?

从技术层面简单的评判标准:直接看画面是否足够“亮”。体现了图形学中的全局光照是否做的好,如果光照做的好,画面就亮,相反就暗。

线性代数

向量

向量的两个基础内容,方向和长度。

一、单位向量

长度为一的向量,叫单位向量。

a ^ \hat{a} a^是单位向量
a ^ = a ⃗ ∣ a ⃗ ∣ \hat{a}= {{\vec{a}} \over {|\vec{a}|}} a^=a a

二、向量的和

a ⃗ \vec{a} a ( x a , y a ) (x_a,y_a) (xa,ya)

b ⃗ \vec{b} b ( x b , y b ) (x_b,y_b) (xb,yb)

a ⃗ + b ⃗ = ( x a + x b , y a + y b ) \vec{a}+\vec{b}=(x_a+x_b,y_a+y_b) a +b =(xa+xb,ya+yb)

三、向量点乘

a ⃗ \vec{a} a ( x a , y a , z a ) (x_a,y_a,z_a) (xa,ya,za)
b ⃗ \vec{b} b ( x b , y b , z b ) (x_b,y_b,z_b) (xb,yb,zb)

a ⃗ \vec{a} a b ⃗ \vec{b} b 点乘表示为:
a ⃗ ⋅ b ⃗ = c o s θ ∣ a ⃗ ∣ ∣ b ⃗ ∣ {\vec{a}\cdot\vec{b}=cos \theta|\vec{a}||\vec{b}|} a b =cosθa ∣∣b
如果 a ⃗ \vec{a} a b ⃗ \vec{b} b 都是单位向量即 a ^ \hat{a} a^ b ^ \hat{b} b^
c o s θ = a ^ ⋅ b ^ cos \theta=\hat{a}\cdot\hat{b} cosθ=a^b^
a ⃗ \vec{a} a b ⃗ \vec{b} b 点乘还可以表示为:
a ⃗ ⋅ b ⃗ = a ⃗ T b ⃗ = ( x a y a z a ) ( x b y b z b ) = x a x b + y a y b + z a z b {\vec{a}\cdot\vec{b}=\vec{a}^T\vec{b}= \begin{pmatrix} x_a&y_a&z_a\\ \end{pmatrix}} \begin{pmatrix} x_b\\ y_b\\ z_b\\ \end{pmatrix} =x_ax_b+y_ay_b+z_az_b a b =a Tb =(xayaza) xbybzb =xaxb+yayb+zazb
点乘的作用

  1. 求夹角

    将两个向量归一化得单位向量,这单位向量的点乘就是夹角的余弦值。

    即:

c o s θ = a ^ ⋅ b ^ cos \theta=\hat{a}\cdot\hat{b} cosθ=a^b^
​ 补充一下余弦定理和推导过程:

​ 余弦定理公式:
c o s θ = ∣ A C ⃗ ∣ 2 + ∣ A B ⃗ ∣ 2 − ∣ B C ⃗ ∣ 2 2 ∣ A C ⃗ ∣ ∣ A B ⃗ ∣ cos \theta={{|\vec{AC}|^2+|\vec{AB}|^2-|\vec{BC}|^2}\over{2|\vec{AC}||\vec{AB}|}} cosθ=2∣AC ∣∣AB AC 2+AB 2BC 2
​ 余弦定理推导过程:

B C ⃗ = A C ⃗ − A B ⃗ B C ⃗ 2 = ( A C ⃗ − A B ⃗ ) 2 B C ⃗ T B C ⃗ = ( A C ⃗ − A B ⃗ ) T ( A C ⃗ − A B ⃗ ) ∣ B C ⃗ ∣ 2 = A C ⃗ T A C ⃗ − 2 A C ⃗ ⋅ A B ⃗ + A B ⃗ T A B ⃗ ∣ B C ⃗ ∣ 2 = ∣ A C ⃗ ∣ 2 − 2 A C ⃗ ⋅ A B ⃗ + ∣ A B ⃗ ∣ 2 ∣ B C ⃗ ∣ 2 = ∣ A C ⃗ ∣ 2 − 2 c o s θ ∣ A C ⃗ ∣ ∣ A B ⃗ ∣ + ∣ A B ⃗ ∣ 2 c o s θ = ∣ A C ⃗ ∣ 2 + ∣ A B ⃗ ∣ 2 − ∣ B C ⃗ ∣ 2 2 ∣ A C ⃗ ∣ ∣ A B ⃗ ∣ \vec{BC}=\vec{AC}-\vec{AB} \\ \vec{BC}^2=(\vec{AC}-\vec{AB})^2 \\ \vec{BC}^T\vec{BC}=(\vec{AC}-\vec{AB})^T(\vec{AC}-\vec{AB}) \\ |\vec{BC}|^2=\vec{AC}^T\vec{AC}-2\vec{AC}\cdot\vec{AB}+\vec{AB}^T\vec{AB} \\ |\vec{BC}|^2=|\vec{AC}|^2-2\vec{AC}\cdot\vec{AB}+|\vec{AB}|^2 \\ |\vec{BC}|^2=|\vec{AC}|^2-2cos \theta|\vec{AC}||\vec{AB}|+|\vec{AB}|^2 \\ cos \theta={{|\vec{AC}|^2+|\vec{AB}|^2-|\vec{BC}|^2}\over{2|\vec{AC}||\vec{AB}|}} BC =AC AB BC 2=(AC AB )2BC TBC =(AC AB )T(AC AB )BC 2=AC TAC 2AC AB +AB TAB BC 2=AC 22AC AB +AB 2BC 2=AC 22cosθAC ∣∣AB +AB 2cosθ=2∣AC ∣∣AB AC 2+AB 2BC 2
​ 余弦定理也可以通过向量的点乘退导出来

  1. 求投影

    A B ⃗ \vec{AB} AB A C ⃗ \vec{AC} AC 的投影 A D ⃗ \vec{AD} AD

    A C ^ \hat{AC} AC^ A B ⃗ \vec{AB} AB 的单位向量

    ∣ A D ⃗ ∣ = ∣ A B ⃗ ∣ c o s θ |\vec{AD}|=|\vec{AB}|cos\theta AD =AB cosθ

    A D ⃗ = A C ^ ∣ A D ⃗ ∣ \vec{AD}=\hat{AC}|\vec{AD}| AD =AC^AD

  2. 接近和前后

    cos在0°到180°上值的分布情况

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egZWC9gH-1681284850478)(https://songimghost.oss-cn-nanjing.aliyuncs.com/img/desmos-graph1.png)]

    A B ⃗ \vec{AB} AB 越接近 A C ⃗ \vec{AC} AC ,θ约小的时候, c o s θ cos\theta cosθ越接近1

    A B ⃗ \vec{AB} AB A C ⃗ \vec{AC} AC 方向相反时,θ大于90°, c o s θ cos\theta cosθ为负值,且越接近-1

四、向量叉乘

在右手坐标系中: A D ⃗ = A B ⃗ × A C ⃗ \vec{AD}=\vec{AB} \times \vec{AC} AD =AB ×AC

A D ⃗ \vec{AD} AD 垂直于 A C ⃗ \vec{AC} AC
A D ⃗ \vec{AD} AD 垂直于 A B ⃗ \vec{AB} AB

∣ A D ⃗ ∣ = s i n θ ∣ A B ⃗ ∣ ∣ A C ⃗ ∣ |\vec{AD}|=sin\theta|\vec{AB}||\vec{AC}| AD =sinθAB ∣∣AC

公式:

a ⃗ = ( x a , y a , z a ) \vec{a}=(x_a,y_a,z_a) a =(xa,ya,za)

b ⃗ = ( x b , y b , z b ) \vec{b}=(x_b,y_b,z_b) b =(xb,yb,zb)

a ⃗ × b ⃗ = ( 0 , − z a , y a z a , 0 , − x a − y a , x a , 0 ) ( x b y b z b ) = ( y a z b − y b z a z a x b − x a z b x a y b − y a x b ) \vec{a}\times\vec{b}=\begin{pmatrix}0,-z_a,y_a\\z_a, 0 ,-x_a\\-y_a,x_a,0 \end{pmatrix}\begin{pmatrix}x_b\\y_b\\z_b\end{pmatrix}=\begin{pmatrix}y_az_b-y_bz_a\\z_ax_b-x_az_b\\x_ay_b-y_ax_b \end{pmatrix} a ×b = 0,za,yaza,0,xaya,xa,0 xbybzb = yazbybzazaxbxazbxaybyaxb

叉乘的作用

  1. 判断左右

    在左手坐标系中, b ⃗ × a ⃗ \vec{b}\times\vec{a} b ×a 和z轴为正值,说明 b ⃗ \vec{b} b a ⃗ \vec{a} a 的顺时针方向。

  2. 判断内外

    ∵ ( C A ⃗ × C D ⃗ ) ⋅ ( A B ⃗ × A D ⃗ ) \because(\vec{CA}\times\vec{CD} )\cdot(\vec{AB}\times\vec{AD}) (CA ×CD )(AB ×AD )的z轴为正值

    ∵ ( A B ⃗ × A D ⃗ ) ⋅ ( B C ⃗ × B D ⃗ ) \because (\vec{AB}\times\vec{AD} )\cdot(\vec{BC}\times\vec{BD}) (AB ×AD )(BC ×BD )的z轴为正值

    ∴ \therefore D点在ABC中间

坐标系定义

坐标分解
∣ u ⃗ ∣ = ∣ v ⃗ ∣ = ∣ w ⃗ ∣ = 1 三个向量都是单位向量   u ⃗ ⋅ v ⃗ = v ⃗ ⋅ w ⃗ = w ⃗ ⋅ u ⃗ = 0 三个向量两两夹角都是 90 °   w ⃗ = u ⃗ × v ⃗ 向量 w ⃗ 垂直于向量 u ⃗ 和 v ⃗ 组成的平面   p ⃗ = ( ( p ⃗ ⋅ u ⃗ ) u ⃗ ( p ⃗ ⋅ v ⃗ ) v ⃗ ( p ⃗ ⋅ w ⃗ ) w ⃗ ) 世界坐标系向量在 u v w 坐标上的分量 |\vec{u}|=|\vec{v}|=|\vec{w}|=1\\ \\三个向量都是单位向量 \\~ \\\vec{u}\cdot\vec{v}=\vec{v}\cdot\vec{w}=\vec{w}\cdot\vec{u}=0\\ \\三个向量两两夹角都是90°\\ \\~\\ \vec{w}=\vec{u}\times\vec{v} \\向量\vec{w}垂直于向量\vec{u}和\vec{v}组成的平面 \\~\\ \vec{p}=\begin{pmatrix}(\vec{p}\cdot\vec{u})\vec{u}\\(\vec{p}\cdot\vec{v})\vec{v}\\(\vec{p}\cdot\vec{w})\vec{w}\end{pmatrix} \\世界坐标系向量在uvw坐标上的分量 u =v =w =1三个向量都是单位向量 u v =v w =w u =0三个向量两两夹角都是90° w =u ×v 向量w 垂直于向量u v 组成的平面 p = (p u )u (p v )v (p w )w 世界坐标系向量在uvw坐标上的分量

矩阵

单位矩阵

( 1 , 0 , 0 , 0 0 , 1 , 0 , 0 0 , 0 , 1 , 0 0 , 0 , 0 , 1 ) \begin{pmatrix}1,0,0,0\\0,1,0,0\\0,0,1,0\\0,0,0,1\end{pmatrix} 1,0,0,00,1,0,00,0,1,00,0,0,1

矩阵的乘积

( a 00 , a 01 , a 02 , a 03 a 10 , a 11 . a 12 , a 13 a 20 , a 21 , a 22 , a 23 a 30 , a 31 , a 32 , a 33 ) × ( b 00 , b 01 , b 02 , b 03 b 10 , b 11 . b 12 , b 13 b 20 , b 21 , b 22 , b 23 b 30 , b 31 , b 32 , b 33 ) = ( c 00 , c 01 , c 02 , c 03 c 10 , c 11 . c 12 , c 13 c 20 , c 21 , c 22 , c 23 c 30 , c 31 , c 32 , c 33 )                                        ( b 00 , b 01 , b 02 , b 03 b 10 , b 11 . b 12 , b 13 b 20 , b 21 , b 22 , b 23 b 30 , b 31 , b 32 , b 33 ) ( a 00 , a 01 , a 02 , a 03 a 10 , a 11 . a 12 , a 13 a 20 , a 21 , a 22 , a 23 a 30 , a 31 , a 32 , a 33 ) ( c 00 , c 01 , c 02 , c 03 c 10 , c 11 . c 12 , c 13 c 20 , c 21 , c 22 , c 23 c 30 , c 31 , c 32 , c 33 )   c 00 = a 00 b 00 + a 01 b 10 + a 02 b 20 + a 03 b 30 c 01 = a 00 b 01 + a 01 b 11 + a 02 b 21 + a 03 b 31 . . \begin{pmatrix}a_{00},a_{01},a_{02},a_{03}\\a_{10},a_{11}.a_{12},a_{13}\\a_{20},a_{21},a_{22},a_{23}\\a_{30},a_{31},a_{32},a_{33}\end{pmatrix}\times\begin{pmatrix}b_{00},b_{01},b_{02},b_{03}\\b_{10},b_{11}.b_{12},b_{13}\\b_{20},b_{21},b_{22},b_{23}\\b_{30},b_{31},b_{32},b_{33}\end{pmatrix}=\begin{pmatrix}c_{00},c_{01},c_{02},c_{03}\\c_{10},c_{11}.c_{12},c_{13}\\c_{20},c_{21},c_{22},c_{23}\\c_{30},c_{31},c_{32},c_{33}\end{pmatrix}\\~\\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\begin{pmatrix}b_{00},b_{01},b_{02},b_{03}\\b_{10},b_{11}.b_{12},b_{13}\\b_{20},b_{21},b_{22},b_{23}\\b_{30},b_{31},b_{32},b_{33}\end{pmatrix}\\\begin{pmatrix}a_{00},a_{01},a_{02},a_{03}\\a_{10},a_{11}.a_{12},a_{13}\\a_{20},a_{21},a_{22},a_{23}\\a_{30},a_{31},a_{32},a_{33}\end{pmatrix}\begin{pmatrix}c_{00},c_{01},c_{02},c_{03}\\c_{10},c_{11}.c_{12},c_{13}\\c_{20},c_{21},c_{22},c_{23}\\c_{30},c_{31},c_{32},c_{33}\end{pmatrix}\\~\\ c_{00}=a_{00}b_{00}+a_{01}b_{10}+a_{02}b_{20}+a_{03}b_{30}\\c_{01}=a_{00}b_{01}+a_{01}b_{11}+a_{02}b_{21}+a_{03}b_{31}\\.\\. a00,a01,a02,a03a10,a11.a12,a13a20,a21,a22,a23a30,a31,a32,a33 × b00,b01,b02,b03b10,b11.b12,b13b20,b21,b22,b23b30,b31,b32,b33 = c00,c01,c02,c03c10,c11.c12,c13c20,c21,c22,c23c30,c31,c32,c33                                       b00,b01,b02,b03b10,b11.b12,b13b20,b21,b22,b23b30,b31,b32,b33 a00,a01,a02,a03a10,a11.a12,a13a20,a21,a22,a23a30,a31,a32,a33 c00,c01,c02,c03c10,c11.c12,c13c20,c21,c22,c23c30,c31,c32,c33  c00=a00b00+a01b10+a02b20+a03b30c01=a00b01+a01b11+a02b21+a03b31..

c c c矩阵的第 x x x行,第 y y y c x y c_{xy} cxy等于 a a a矩阵的第 x x x行和 b b b矩阵的第 y y y列相乘相加。

矩阵乘向量

( a 00 , a 01 , a 02 , a 03 a 10 , a 11 . a 12 , a 13 a 20 , a 21 , a 22 , a 23 a 30 , a 31 , a 32 , a 33 ) ( b 00 b 10 b 20 0 ) = ( a 00 b 00 + a 01 b 10 + a 02 b 20 + 0 a 10 b 00 + a 11 b 10 + a 12 b 20 + 0 a 20 b 00 + a 21 b 10 + a 22 b 20 + 0 a 30 b 00 + a 31 b 10 + a 32 b 20 + 0 ) \begin{pmatrix}a_{00},a_{01},a_{02},a_{03}\\a_{10},a_{11}.a_{12},a_{13}\\a_{20},a_{21},a_{22},a_{23}\\a_{30},a_{31},a_{32},a_{33}\end{pmatrix}\begin{pmatrix}b_{00}\\b_{10}\\b_{20}\\0\end{pmatrix}=\begin{pmatrix}a_{00}b_{00}+a_{01}b_{10}+a_{02}b_{20}+0\\a_{10}b_{00}+a_{11}b_{10}+a_{12}b_{20}+0\\a_{20}b_{00}+a_{21}b_{10}+a_{22}b_{20}+0\\a_{30}b_{00}+a_{31}b_{10}+a_{32}b_{20}+0\end{pmatrix} a00,a01,a02,a03a10,a11.a12,a13a20,a21,a22,a23a30,a31,a32,a33 b00b10b200 = a00b00+a01b10+a02b20+0a10b00+a11b10+a12b20+0a20b00+a21b10+a22b20+0a30b00+a31b10+a32b20+0

矩阵变换

缩放矩阵
( S 00 ,    0 ,    0 ,    0   0 , S 11 ,    0 ,    0   0 ,    0 , S 22 ,    0    0 ,    0 ,    0 ,    1 ) \begin{pmatrix}S_{00},~~0,~~0,~~0\\~0,S_{11},~~0,~~0\\~0,~~0,S_{22},~~0\\~~0,~~0,~~0,~~1\end{pmatrix} S00,  0,  0,  0 0,S11,  0,  0 0,  0,S22,  0  0,  0,  0,  1
平移矩阵
(    0 ,    0 ,    0 ,    T 04    0 ,    0 ,    0 ,    T 14    0 ,    0 ,    0 ,    T 24    0 ,    0 ,    0 ,    1 ) \begin{pmatrix}~~0,~~0,~~0,~~T_{04}\\~~0,~~0,~~0,~~T_{14}\\~~0,~~0,~~0,~~T_{24}\\~~0,~~0,~~0,~~1\end{pmatrix}   0,  0,  0,  T04  0,  0,  0,  T14  0,  0,  0,  T24  0,  0,  0,  1
旋转矩阵

矩阵转置

( 1 ,    2 3 ,    4 5 ,    6 7 ,    8 ) T = ( 1 ,    3 ,    5 ,    7 2 ,    4 ,    6 ,    8 ) \begin{pmatrix}1,~~2\\3,~~4\\5,~~6\\7,~~8\end{pmatrix}^T=\begin{pmatrix}1,~~3,~~5,~~7\\2,~~4,~~6,~~8\end{pmatrix} 1,  23,  45,  67,  8 T=(1,  3,  5,  72,  4,  6,  8)

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

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

相关文章

Android实现RecyclerView分组显示功能完整示例(自定义组头和Item布局)

实现效果截图&#xff1a; 首先&#xff0c;我们需要为RecyclerView添加一个分组的概念&#xff0c;我们可以创建一个Group类来表示分组&#xff0c;包括分组名称和分组中的数据项列表。代码如下&#xff1a; public class Group {private String name;private List<Item&g…

ChatGPT-5到底有多强?Battle!咱貌似也不输呀!

盘点今年的热点话题&#xff0c;ChatGPT是不可避免要被反复提及的一part。从去年的-3.0到今年的-3.5&#xff0c;再到上月刚发布-4.0。从用户体验和市场反馈来讲&#xff0c;这半年的时间&#xff0c;ChatGPT每一步都走得又稳又快&#xff01; 回想起今年2月初ChatGPT全网爆火的…

最短路径-dijkstra/floyd

目录 floyd -dijkstra floyd floyd:用来求所有顶点之间的最短路径问题,求最短路径具体节点顺序&#xff0c;求各点之间最短路径长度 理解floyd&#xff1a; 二维矩阵图&#xff0c;就是不断通过测试新的节点k&#xff0c;看看k节点能不能作为中间节点优化各点之间的最短距离…

SourceMap源码映射详细讲解

SourceMap源码映射详细讲解 前端工程打包后代码会跟项目源码不一致&#xff0c;当代码运行出错时控制台上定位出错代码的位置跟项目源码上不对应。这时候我们很难定位错误代码的位置。SourceMap的用途是可以将转换后的代码映射回源码&#xff0c;如果设置了js文件对应的map资源…

Java每日一练(20230416)

目录 1. 三数之和 &#x1f31f;&#x1f31f; 2. 基本计算器 &#x1f31f;&#x1f31f;&#x1f31f; 3. 通配符匹配 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java…

Android:编译libevent动态库并移植jni中,在Android AVD虚拟机上实现一个http服务器

libevent源码&#xff1a;libevent-2.1.8-stable Android Studio版本&#xff1a;Android Studio Electric Eel | 2022.1.1 Patch 2 AVD虚拟机为x86. https://developer.android.google.cn/studio/run/emulator-networking?hlzh-cn#connecting 大体步骤&#xff1a; 1.在ws…

Vue2_01_data_插值

插值语法 {{name}} data: vue实例的数据对象 data中数据变化时将重新渲染容器 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><!--引入vue,引入之后vue.js 创建了一个全局变…

c语言进阶篇_动态内存管理(数组可以自动扩容?)

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:讲解c语言中的动态内存管理知识,涉及malloc函数、call…

微信小程序运行及更新机制

微信小程序运行及更新机制1、微信小程序运行机制1.1 前台和后台1.2 小程序启动&#xff1a;冷启动和热启动1.3 小程序销毁2、微信小程序更新机制2.1 启动时同步更新定期检查发现版本更新用户长时间未使用小程序2.2 启动时异步更新开发者手动触发更新2.3 小程序管理后台的相关设…

软件测试分类详解

一图看清软件测试分类 一、按测试技术分&#xff08;是否查看代码&#xff09; **1. 黑盒测试**&#xff1a;软件功能是否正常使用【功能的测试】 **2. 白盒测试**&#xff1a;代码逻辑是否正确【结构的测试】 **3. 灰盒测试**&#xff1a;介于两者之间的测试&#xff0c;也…

第12章_集合框架

第12章_集合框架 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 本章专题与脉络 1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 一方面&#xff0c;面向对象语言对事物的体现都是以对…

iOS 项目嵌入Flutter 运行

一 创建Flutter 模块命令行flutter create --template module my_flutter创建完成后&#xff0c;该模块和普通的Flutter项目一直&#xff0c;可以通过Android Studio或VSCode打开、开发、运行&#xff1b;和之前项目不同的iOS和Android项目是一个隐藏文件&#xff0c;并且我们…

黑马点评缓存练习题shop-type缓存,附带详细解析

黑马点评缓存练习题shop-type缓存 依照shop详情的缓存 Controller代码 public class ShopTypeController {Resourceprivate IShopTypeService typeService;GetMapping("list")public Result queryTypeList() {return typeService.queryList();} }创建service接口方…

SentenceTransformers介绍

SentenceTransformer使用范例 1使用SentenceTransformers获得句子向量嵌入 from sentence_transformers import SentenceTransformer#模型下载 model SentenceTransformer(paraphrase-MiniLM-L6-v2)# 编码句子 sentences [Python is an interpreted high-level general-pur…

JavaScript【五】JavaScript中的对象

文章目录&#x1f31f;前言&#x1f31f;对象&#xff1a;&#x1f31f;声明对象&#xff1a;&#x1f31f;隐式创建对象&#xff1a;&#x1f31f;实例化Object&#xff1a;&#x1f31f;实例化自定义构造函数&#xff1a;(会重复占用内存)&#x1f31f;new运算符具体做了什么…

自动内存管理之【常量池】

首先上一段代码&#xff0c;一起思考&#xff0c;打印的结果&#xff0c;基于jdk1.8。 StringBuilder sbnew StringBuilder("我爱我媳妇儿");String s sb.toString();System.out.println(s.intern()s); //falsesb.append("&#xff0c;她也很爱我&#xff01;&…

C++——入门讲解

作者&#xff1a;几冬雪来 时间&#xff1a;2023年4月16日 内容&#xff1a;C入门讲解 目录 前言&#xff1a; 1.什么是C&#xff1a; 2.C关键字&#xff1a; 3.命名冲突&#xff1a; 4.域和::操作符&#xff1a; 5.std内容讲解&#xff1a; 6.<<符&#xff1a…

STM32F4_独立看门狗详解(IWDG)

目录 1. 独立看门狗是什么 2. 独立看门狗 IWDG简介 3. 独立看门狗的主要特性 4. 独立看门狗功能 4.1 独立看门狗功能框图 4.2 IWDG寄存器 4.2.1 关键字寄存器 IWDG_KR 4.2.2 预分频器寄存器 IWDG_PR 4.2.3 重载寄存器 IWDG_RLR 4.2.4 状态寄存器 IWDG_SR 5. 库函数…

OpenCV实战之人脸美颜美型(六)——磨皮

1.需求分析 有个词叫做“肤若凝脂”,直译为皮肤像凝固的油脂,形容皮肤洁白且光润,这是对美女的一种通用评价。实际生活中我们的皮肤多少会有一些毛孔、斑点等表现,在观感上与上述的“光润感”相反,因此磨皮也成为美颜算法中的一项基础且重要的功能。让皮肤变得更加光润,就…

interface陷阱

A1 interface Duck Typing: 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子&#xff0c;那么这只鸟就可以被称为鸭子 目的: 在 Go 中&#xff0c;Interface&#xff08;接口&#xff09;只是一组方法集合。描述事物的外部行为而非内部结构。 通过接口实现多态的概…