当前位置:网站首页>[barycentric coordinate interpolation, perspective correction interpolation] principle and usage opinions
[barycentric coordinate interpolation, perspective correction interpolation] principle and usage opinions
2022-04-23 13:30:00 【Zong haoduolao】
List of articles
1、Barycentric Coordinates( The coordinates of the center of gravity )
For reference only , Math is weak , There is no guarantee of correctness .. But there should be a harvest after reading it
1.1 The concept of barycentric coordinates
With 2D For example :
- Any point inside the triangle ( Including vertices ) Can be expressed as a linear combination of three vertices . Three coefficients satisfying the following relationship (α,β,γ) Is the center of gravity coordinate of the point . Another limitation is that these three coefficients must be nonnegative , Otherwise it's outside the triangle
- In short , It's a point inside the triangle (x,y) The representation in the center of gravity coordinate is (α,β,γ)
- The center of gravity coordinates of the three vertices are
A:(1,0,0)
B:(0,1,0)
C:(0,0,1)
1.2 Calculation method of center of gravity coordinates
For the interior points of the triangle P How to calculate its central coordinates
Method 1: Area ratio
- A The coefficient of α: Its corresponding triangular area AA( The red part ) Ratio to total area
- B The coefficient of β: Its corresponding triangular area AB( The yellow part ) Ratio to total area
- C The coefficient of γ: Its corresponding triangular area AC( The blue part ) Ratio to total area
Method 2: Use the formula derived from
Say first conclusion , The second part explains the derivation process in detail
β = ( y − y A ) ( x C − x A ) − ( x − x A ) ( y C − y A ) ( y B − y A ) ( x C − x A ) − ( x B − x A ) ( y C − y A ) γ = ( y − y A ) ( x B − x A ) − ( x − x A ) ( y B − y A ) ( y C − y A ) ( x B − x A ) − ( x C − x A ) ( y B − y A ) α = 1 − β − γ \color{red}\large β=\frac{ (y- y_{\tiny A})(x_{\tiny C} - x_{\tiny A})-(x - x_{\tiny A})(y_{\tiny C} - y_{\tiny A}) }{(y_{\tiny B} - y_{\tiny A})(x_{\tiny C} - x_{\tiny A})-(x_{\tiny B} - x_{\tiny A})(y_{\tiny C} - y_{\tiny A})}\\ \: \\ \large γ=\frac{ (y- y_{\tiny A})(x_{\tiny B} - x_{\tiny A})-(x - x_{\tiny A})(y_{\tiny B} - y_{\tiny A}) }{(y_{\tiny C} - y_{\tiny A})(x_{\tiny B} - x_{\tiny A})-(x_{\tiny C} - x_{\tiny A})(y_{\tiny B} - y_{\tiny A})}\\ \: \\ α=1-β-γ\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\: β=(yB−yA)(xC−xA)−(xB−xA)(yC−yA)(y−yA)(xC−xA)−(x−xA)(yC−yA)γ=(yC−yA)(xB−xA)−(xC−xA)(yB−yA)(y−yA)(xB−xA)−(x−xA)(yB−yA)α=1−β−γ
1.3 Center of gravity coordinates interpolation
The calculation method of known center of gravity coordinates , How to interpolate attributes ?
The calculated center of gravity coordinates (α,β,γ), In fact, it is equivalent to a weight ratio , Put the corresponding VAVBVC Switch to uv coordinate 、 Color 、 normal 、 Depth value 、 Material properties ,V That is, what you want
2 The calculation formula of center of gravity
It is known that 2D In the plane △ A B C △ABC △ABC The coordinates of the three vertices A : ( x A , y A ) , B : ( x B , y B ) , C : ( x C , y C ) \large A:(x_A,y_A),B:(x_B,y_B),C:(x_C,y_C) A:(xA,yA),B:(xB,yB),C:(xC,yC) And any point inside the triangle P Coordinates of P : ( x , y ) \large P:(x, y) P:(x,y)
spot P P P Two conditions must be met :
{ P = α A + β B + γ C ⋯ ⋯ ⋯ ⋯ ① α + β + γ = 1 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ② \begin{cases} P=\alpha A + \beta B +\gamma C\cdots\cdots\cdots\cdots① \\ \alpha+\beta+\gamma = 1 \cdots\cdots\cdots\cdots\cdots\cdots② \end{cases} {
P=αA+βB+γC⋯⋯⋯⋯①α+β+γ=1⋯⋯⋯⋯⋯⋯②
How to calculate... According to known conditions α 、 β 、 γ \alpha、\beta、\gamma α、β、γ ?
Step 1
The formula ② Plug in ①, We can eliminate an unknown quantity ( Here I put α Kill first ,101 In the course, they were killed γ, The process is the same )
P = ( 1 − β − γ ) A + β B + γ C P = (1-β-γ)A+βB+γC P=(1−β−γ)A+βB+γC
Open parentheses , Merge similar items and simply move items , It is easy to conclude that
P − A = β ( B − A ) + γ ( C − A ) ⋯ ⋯ ⋯ ⋯ ③ P-A=β(B-A)+γ(C-A)\cdots\cdots\cdots\cdots③ P−A=β(B−A)+γ(C−A)⋯⋯⋯⋯③
This formula. , Can be understood in terms of vector operations , A P → = β A B → + γ A C → \overrightarrow {AP} = β\overrightarrow {AB}+γ\overrightarrow {AC} AP=βAB+γAC
Step 2
By formula ③, The known points A 、 B 、 C 、 P A、B、C、P A、B、C、P Substitute the coordinates of , Available
( x − x A y − y A ) = β ( x B − x A y B − y A ) + γ ( x C − x A y C − y A ) \large \begin{pmatrix} x - x_{\tiny A} \\y- y_{\tiny A} \end{pmatrix}= β\large\begin{pmatrix} x_{\tiny B} - x_{\tiny A} \\ y_{\tiny B} - y_{\tiny A} \end{pmatrix}+ γ\large\begin{pmatrix}x_{\tiny C} - x_{\tiny A} \\ y_{\tiny C} - y_{\tiny A} \end{pmatrix} (x−xAy−yA)=β(xB−xAyB−yA)+γ(xC−xAyC−yA)
Open write , Available equations ( Two unknowns , Two equations )
{ ( x − x A ) = β ( x B − x A ) + γ ( x C − x A ) ⋯ ⋯ ④ ( y − y A ) = β ( y B − y A ) + γ ( y C − y A ) ⋯ ⋯ ⋅ ⑤ \begin{cases} (x - x_{\tiny A}) =β(x_{\tiny B} - x_{\tiny A})+γ(x_{\tiny C} - x_{\tiny A})\cdots\cdots④\\ (y- y_{\tiny A})=β(y_{\tiny B} - y_{\tiny A})+γ(y_{\tiny C} - y_{\tiny A})\cdots\cdots\cdot⑤ \end{cases} {
(x−xA)=β(xB−xA)+γ(xC−xA)⋯⋯④(y−yA)=β(yB−yA)+γ(yC−yA)⋯⋯⋅⑤
④ × ( y C − y A ) , ⑤ × ( x C − x A ) ④\times(y_{\tiny C} - y_{\tiny A}),⑤\times(x_{\tiny C} - x_{\tiny A}) ④×(yC−yA),⑤×(xC−xA) have to :
( x − x A ) ( y C − y A ) = β ( x B − x A ) ( y C − y A ) + γ ( x C − x A ) ( y C − y A ) ⋯ ⋯ ⑥ ( y − y A ) ( x C − x A ) = β ( y B − y A ) ( x C − x A ) + γ ( y C − y A ) ( x C − x A ) ⋯ ⋯ ⑦ (x- x_{\tiny A})(y_{\tiny C} - y_{\tiny A}) = β(x_{\tiny B} - x_{\tiny A})(y_{\tiny C} - y_{\tiny A})+\cancel{γ(x_{\tiny C} - x_{\tiny A})(y_{\tiny C} - y_{\tiny A})} \cdots\cdots⑥\\ (y- y_{\tiny A})(x_{\tiny C} - x_{\tiny A}) = β(y_{\tiny B} - y_{\tiny A})(x_{\tiny C} - x_{\tiny A})+\cancel{γ(y_{\tiny C} - y_{\tiny A})(x_{\tiny C} - x_{\tiny A})}\cdots\cdots⑦ (x−xA)(yC−yA)=β(xB−xA)(yC−yA)+γ(xC−xA)(yC−yA)
⋯⋯⑥(y−yA)(xC−xA)=β(yB−yA)(xC−xA)+γ(yC−yA)(xC−xA)
⋯⋯⑦
⑦ − ⑥ ⑦-⑥ ⑦−⑥ obtain β, The same can be γ
Step 3
Final α 、 β 、 γ α、β、γ α、β、γ expression
β = ( y − y A ) ( x C − x A ) − ( x − x A ) ( y C − y A ) ( y B − y A ) ( x C − x A ) − ( x B − x A ) ( y C − y A ) γ = ( y − y A ) ( x B − x A ) − ( x − x A ) ( y B − y A ) ( y C − y A ) ( x B − x A ) − ( x C − x A ) ( y B − y A ) α = 1 − β − γ \color{red}\large β=\frac{ (y- y_{\tiny A})(x_{\tiny C} - x_{\tiny A})-(x - x_{\tiny A})(y_{\tiny C} - y_{\tiny A}) }{(y_{\tiny B} - y_{\tiny A})(x_{\tiny C} - x_{\tiny A})-(x_{\tiny B} - x_{\tiny A})(y_{\tiny C} - y_{\tiny A})}\\ \: \\ \large γ=\frac{ (y- y_{\tiny A})(x_{\tiny B} - x_{\tiny A})-(x - x_{\tiny A})(y_{\tiny B} - y_{\tiny A}) }{(y_{\tiny C} - y_{\tiny A})(x_{\tiny B} - x_{\tiny A})-(x_{\tiny C} - x_{\tiny A})(y_{\tiny B} - y_{\tiny A})}\\ \: \\ α=1-β-γ\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\: β=(yB−yA)(xC−xA)−(xB−xA)(yC−yA)(y−yA)(xC−xA)−(x−xA)(yC−yA)γ=(yC−yA)(xB−xA)−(xC−xA)(yB−yA)(y−yA)(xB−xA)−(x−xA)(yB−yA)α=1−β−γ
Here we are , The interpolation of barycentric coordinates is over , Calculate the center of gravity coordinates separately in the two-dimensional plane or three-dimensional plane according to the coordinates of four points ( The weight ) And then interpolation P Normal of 、uv Coordinates and everything , Can get very correct results
however , The interpolation after projection is very particular
Basic knowledge of perspective projection , I won't go into that here , Its related detailed steps , Visible Of this article 4.3 part
For a particular triangle in space , Only three vertices carry coordinate information ( x , y , z ) (x,y,z) (x,y,z), Do perspective projection on it , These three points change to the screen space of the camera , here , What do we do if we want to get a depth map ?
Method of establishing deep cache
- First create a deep cache , It's actually a two-dimensional array zbuffer[width][height], And initialize each array element to infinity
- Traverse each pixel covered by each triangle , take
The point in the scene corresponding to this pixel z value
Follow zbuffer Corresponding to position z The comparison , Small ones cover
The question is how to know Of the pixel z
How much is the ?
(1) You might think , We already know the coordinates of the three vertices after projection transformation on the screen ( x A , y A ) , ( x B , y B ) , ( x C , y C ) \large(x_{\tiny A},y_{\tiny A}),(x_{\tiny B},y_{\tiny B}),(x_{\tiny C},y_{\tiny C}) (xA,yA),(xB,yB),(xC,yC) And target pixels P ( x , y ) (x,y) (x,y). Work out P The center of gravity coordinates of the point , Then I have the depth of three known vertices Z, Interpolation is enough . Good idea , But this approach is In the wrong
, Can't be calculated by interpolation ( α , β , γ ) (α,β,γ) (α,β,γ) There are many reasons for direct interpolation , Part of the reason is as follows :
-
After projection, the shape of the triangle will generally change . An equilateral triangle in space , After projection, it may become a particularly narrow triangle , At this time, I calculate the weight ratio of the pixel ( The coordinates of the center of gravity ) It must be different from the weight ratio of the point corresponding to the pixel in the space in the triangle , So direct interpolation , Not an option .
-
After projection , Far away from the vertebral body / Points near the plane , after Squish After transformation ,z The value is constant , But the point in the middle of the optic vertebral body , After transformation z The absolute value of will become larger , So on the projected triangle Direct interpolation , Not an option
(2) You may also think of , Target pixels in screen space P Point application Inverse of perspective projection matrix
, Do an inverse transformation and change it back to the original space , Then you know P The exact position of the point in space , Then interpolate the depth , Write back to the deep cache P Pixel position . OK This is very accurate , however , Each pixel has to do an inverse matrix operation , The resolution of my depth map may be millions of pixels , this The amount of calculation is unacceptable
A lot of wordiness , I hope I have no problem , Some questions are clear in my mind , But I don't know how to say it . If there is a mistake, please give us more advice
3 Perspective projection interpolation correction
3.1 After fluoroscopy correction Depth interpolation formula
International practice , Say first conclusion , If you are not interested in deriving a direct set of formulas
1 Z = α ′ 1 Z A + β ′ 1 Z B + γ ′ 1 Z C \displaystyle\large\color{red} \frac{1}{Z}=α'\frac{1}{Z_A}+β'\frac{1}{Z_B}+γ'\frac{1}{Z_C} Z1=α′ZA1+β′ZB1+γ′ZC1
Symbol description : belt ′ ' ′ All are projected values , What you don't bring is the value in world space
Z : empty between in spot P Of deep degree value α ′ 、 β ′ 、 γ ′ : screen The tent empty between On count Out Come on Of heavy heart sit mark Z A 、 Z B 、 Z C : empty between in Of 3、 ... and individual The top spot Of deep degree value Z: Space midpoint P Depth value of \\α'、β'、γ': The center of gravity coordinates calculated in screen space \\Z_A、Z_B、Z_C: The depth value of three vertices in space Z: empty between in spot P Of deep degree value α′、β′、γ′: screen The tent empty between On count Out Come on Of heavy heart sit mark ZA、ZB、ZC: empty between in Of 3、 ... and individual The top spot Of deep degree value
Derivation process The core idea
: Through the projected interior point of the triangle P ′ P' P′ Of α ′ 、 β ′ 、 γ ′ α'、β'、γ' α′、β′、γ′, Calculate the inner point of the triangle before projection P P P Depth value of
Step 1: Find the relationship between the center of gravity coordinates before and after projection
For the formula 1 = α ′ + β ′ + γ ′ 1=α'+β'+γ' 1=α′+β′+γ′ Do identity deformation
Z Z = Z A Z A α ′ + Z B Z B β ′ + Z C Z C γ ′ \frac{Z}{Z}=\frac{Z_A}{Z_A}α'+\frac{Z_B}{Z_B}β'+\frac{Z_C}{Z_C}γ' ZZ=ZAZAα′+ZBZBβ′+ZCZCγ′
Left and right are the same ×Z
Z = ( Z Z A α ′ ) Z A + ( Z Z B β ′ ) Z B + ( Z Z C γ ′ ) Z C … … … ① Z =(\frac{Z}{Z_A}α')Z_A+(\frac{Z}{Z_B}β')Z_B+(\frac{Z}{Z_C}γ')Z_C\dots\dots\dots① Z=(ZAZα′)ZA+(ZBZβ′)ZB+(ZCZγ′)ZC………①
Compare the interpolation formula before projection
Z = α Z A + β Z B + γ Z C ⋯ ⋯ ⋯ ⋯ ② Z = αZ_A+βZ_B+γZ_C\cdots\cdots\cdots\cdots② Z=αZA+βZB+γZC⋯⋯⋯⋯②
To unite ①②, have to
α = Z Z A α ′ , β = Z Z B β ′ , γ = Z Z C γ ′ α=\frac{Z}{Z_A}α',β=\frac{Z}{Z_B}β',γ=\frac{Z}{Z_C}γ' α=ZAZα′,β=ZBZβ′,γ=ZCZγ′
Step 2: The depth interpolation formula after perspective correction is obtained
because 1 = α + β + γ 1=α+β+γ 1=α+β+γ, And α = Z Z A α ′ , β = Z Z B β ′ , γ = Z Z C γ ′ \displaystyle α=\frac{Z}{Z_A}α',β=\frac{Z}{Z_B}β',γ=\frac{Z}{Z_C}γ' α=ZAZα′,β=ZBZβ′,γ=ZCZγ′
therefore
1 = Z Z A α ′ + Z Z B β ′ + Z Z C γ ′ ⋯ ⋯ ⋯ ③ 1 = \frac{Z}{Z_A}α'+\frac{Z}{Z_B}β'+\frac{Z}{Z_C}γ'\cdots\cdots\cdots③ 1=ZAZα′+ZBZβ′+ZCZγ′⋯⋯⋯③
Yes ③ Left and right are the same × 1 Z \times \frac{1}{Z} ×Z1
1 Z = α ′ 1 Z A + β ′ 1 Z B + γ ′ 1 Z C \displaystyle\color{red}\Large\frac{1}{Z}=α' \frac{1}{Z_A}+β'\frac{1}{Z_B}+γ'\frac{1}{Z_C} Z1=α′ZA1+β′ZB1+γ′ZC1
At this point, a deep cache can be well generated 、shadow map 了
3.2 A very important detail of perspective projection
Note that after completing the perspective projection , Three vertices in screen space A ′ B ′ C ′ A'B'C' A′B′C′ Of z z z component Z A , Z B , Z C Z_A,Z_B,Z_C ZA,ZB,ZC It does not store the correct depth of the three vertices originally located in world space , After applying the projection matrix, this z The storage depth of components has become far away
, Original Z, After transformation , Run to the homogeneous coordinates of w On weight
Now let's take any point inside the vertebral body P = ( x , y , z , 1 ) P=(x,y,z,1) P=(x,y,z,1), Apply perspective projection matrix
[ 2 n r − l 0 l + r l − r 0 0 2 n t − b b + t b − t 0 0 0 n + f n − f 2 n f n − f 0 0 1 0 ] ⋅ [ x y z 1 ] = [ No Turn off heart lazy have to count No heavy want z ] \Large \begin{bmatrix} \frac{2n}{r-l}&0&\frac{l+r}{l-r}&0 \\ 0 & \frac{2n}{t-b}&\frac{b+t}{b-t}&0 \\ 0&0&\frac{n+f}{n-f}&\frac{2nf}{n-f}\\ 0&0&1&0 \end{bmatrix}·\begin{bmatrix}x\\y\\z\\1\end{bmatrix} = \begin{bmatrix} \small No concern \\\small Too lazy to count \\ \small Is not important \\ \color{red}\mathbf z \end{bmatrix} ⎣⎢⎢⎢⎢⎢⎢⎡r−l2n0000t−b2n00l−rl+rb−tb+tn−fn+f100n−f2nf0⎦⎥⎥⎥⎥⎥⎥⎤⋅⎣⎢⎢⎢⎢⎢⎡xyz1⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡ No Turn off heart lazy have to count No heavy want z⎦⎥⎥⎥⎥⎥⎤
- ok, After applying the perspective projection matrix , Triangle vertices in screen space ,
vertex[0].w()
It's the apex 0 The correct depth value before perspective projection , With interpolation formula Z A Z_A ZA Take this value , Don't take it .z() component
About Squish The problem that matrices push points away is also particularly simple , Choose any one , Left multiplication Msquish And then determine z That's enough
3.2 More general : Arbitrary attribute interpolation formula
Don't understand the meaning of existence , The above formula should be enough . Who knows, can you tell me
I I I Is the target attribute of the target point in the triangle
Barycentric coordinate interpolation formula : I = α I A + β I B + γ I C \large I = αI_A+βI_B+γI_C I=αIA+βIB+γIC
Again because
α = Z Z A α ′ , β = Z Z B β ′ , γ = Z Z C γ ′ \largeα=\frac{Z}{Z_A}α',β=\frac{Z}{Z_B}β',γ=\frac{Z}{Z_C}γ' α=ZAZα′,β=ZBZβ′,γ=ZCZγ′
therefore I = α ′ I A + β ′ I B + γ ′ I C I = α'I_A+β'I_B+γ'I_C I=α′IA+β′IB+γ′IC It can be written as
I = Z ⋅ ( α ′ I A Z A + β ′ I B Z B + γ ′ I C Z C ) \large\color{red} I=Z·(α'\frac{I_A}{Z_A}+β'\frac{I_B}{Z_B}+γ'\frac{I_C}{Z_C}) I=Z⋅(α′ZAIA+β′ZBIB+γ′ZCIC)
I screen The tent empty between On 3、 ... and horn shape Inside Ministry spot Of Belong to sex I A 、 I B 、 I C yes 3、 ... and individual The top spot Of ren It means Belong to sex I Properties of interior points of triangles in screen space \\ I_A、I_B、I_C Is any attribute of three vertices I screen The tent empty between On 3、 ... and horn shape Inside Ministry spot Of Belong to sex IA、IB、IC yes 3、 ... and individual The top spot Of ren It means Belong to sex
// The center of gravity coordinates are calculated here
auto [alpha, beta, gamma] = computeBarycentric2D(i+0.5, j+0.5, t.v);
// w_reciprocal That's the pixel p The depth value in the corresponding observation space z
float w_reciprocal = 1.0 / (alpha / v[0].w() + beta / v[1].w() + gamma / v[2].w());
// But here we use arbitrary attribute interpolation formula , I'm a little confused , also IA Taken v[0].z()
float z_interpolated = w_reciprocal*(alpha*v[0].z()/v[0].w() + beta*v[1].z()/v[1].w() + gamma*v[2].z()/v[2].w());
w _ r e c i p r o c a l = 1 α ′ 1 Z A + β ′ 1 Z B + γ ′ 1 Z C \displaystyle\large w\_reciprocal=\frac{1}{α' \frac{1}{Z_A}+β'\frac{1}{Z_B}+γ'\frac{1}{Z_C}} w_reciprocal=α′ZA1+β′ZB1+γ′ZC11 ( It's calculated here Z As the following Z, To calculate any attribute )
z _ i n t e r p o l a t e d = Z ⋅ ( α ′ I A Z A + β ′ I B Z B + γ ′ I C Z C ) \displaystyle\large z\_interpolated =\color{red}Z\color{normal} ·(α'\frac{I_A}{Z_A}+β'\frac{I_B}{Z_B}+γ'\frac{I_C}{Z_C}) z_interpolated=Z⋅(α′ZAIA+β′ZBIB+γ′ZCIC)( And any attribute is calculation Z- - ...)
Then the process of interpolating any attribute is divided into two steps :
- (1) interpolation z z z, Because... Must be used in the formula of interpolating any attribute z
- (2) Arbitrary interpolation properties I I I. I A 、 I B 、 I C I_A、I_B、I_C IA、IB、IC The selection method is the information contained in the three vertices of the screen space ( As above AZ It's really V[0].z()),
Whether it changes after projection or not , Directly into , This is the value of this formula . Now what I can think of is this , Leave a hole and fill it when you're sure
build discussion see Its He Count learn Big Guy Of fine indeed PUSH guide . . . \large It is suggested to look at the precise derivation of other mathematical bosses ... build discussion see Its He Count learn Big Guy Of fine indeed PUSH guide ...
版权声明
本文为[Zong haoduolao]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231325328740.html
边栏推荐
- Unified task distribution scheduling execution framework
- Feature Engineering of interview summary
- mui 微信支付 排坑
- Summary of request and response and their ServletContext
- 缘结西安 | CSDN与西安思源学院签约,全面开启IT人才培养新篇章
- Bottomsheetdialogfragment + viewpager + fragment + recyclerview sliding problem
- POM of SSM integration xml
- SPI NAND flash summary
- PyTorch 21. NN in pytorch Embedding module
- You and the 42W bonus pool are one short of the "Changsha bank Cup" Tencent yunqi innovation competition!
猜你喜欢
X509 parsing
MySQL 8.0.11下载、安装和使用可视化工具连接教程
Ding ~ your scholarship has arrived! C certified enterprise scholarship list released
The first lesson is canvas, showing a small case
./gradlew: Permission denied
[point cloud series] full revolutionary geometric features
SHA512 / 384 principle and C language implementation (with source code)
MySQL5. 5 installation tutorial
[official announcement] Changsha software talent training base was established!
浅谈js正则之test方法bug篇
随机推荐
[walking notes]
LeetCode_DFS_中等_695.岛屿的最大面积
@优秀的你!CSDN高校俱乐部主席招募!
Machine learning -- PCA and LDA
MySQL5.5安装教程
The difference between string and character array in C language
鸿蒙系统是抄袭?还是未来?3分钟听完就懂的专业讲解
Servlet of three web components
[Journal Conference Series] IEEE series template download guide
Explanation of input components in Chapter 16
[quick platoon] 215 The kth largest element in the array
playwright控制本地穀歌瀏覽打開,並下載文件
[indicators] precision, recall
交叉碳市场和 Web3 以实现再生变革
[point cloud series] multi view neural human rendering (NHR)
Longitude and latitude position of provincial capitals in China
Playwright contrôle l'ouverture de la navigation Google locale et télécharge des fichiers
缘结西安 | CSDN与西安思源学院签约,全面开启IT人才培养新篇章
TERSUS笔记员工信息516-Mysql查询(2个字段的时间段唯一性判断)
[point cloud series] so net: self organizing network for point cloud analysis