<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[feyily的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/TYILY</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; TYILY]]></copyright><item><title><![CDATA[HTTP协议不同版本区别面试总结]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/119346267</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/119346267</guid><author>TYILY</author><pubDate>Tue, 03 Aug 2021 19:57:35 +0800</pubDate><description><![CDATA[HTTP是超文本传输协议（HyperText Transfer Protocol, HTTP）的简写，它是TCP/IP协议的应用层协议。
HTTP/0.9
HTTP/0.9是HTTP的第一个版本

已过时。它的组成极其简单，只允许客户端发送GET这一种请求，且不支持请求头。由于没有协议头，造成了HTTP/0.9协议只支持一种内容，即纯文本。不过网页仍然支持用HTML语言格式化，同时无法插入图片。
具有典型的无状态性，每个事务独立进行处理，事务结束时就释放这个连接。一次HTTP/0.9的传输首先要建立一个由客]]></description><category></category></item><item><title><![CDATA[C++中的delete与delete[]]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/118885364</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/118885364</guid><author>TYILY</author><pubDate>Sun, 18 Jul 2021 23:20:01 +0800</pubDate><description><![CDATA[本文摘编自https://www.cnblogs.com/charley_yang/archive/2010/12/08/1899982.html

C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete，回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。简单来说就是使用delete释放单个对象，使用delete[]释放数组对象。
关于 new[] 和 delete[]，其中又分为两种情况：

为基本数据类型分配和回收空间；
为自定义类型分配和回收空间。

下.]]></description><category></category></item><item><title><![CDATA[OpenHarmony C++语言编程规范]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/117620389</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/117620389</guid><author>TYILY</author><pubDate>Sun, 06 Jun 2021 10:23:20 +0800</pubDate><description><![CDATA[C++语言编程规范
目的
规则并不是完美的，通过禁止在特定情况下有用的特性，可能会对代码实现造成影响。但是我们制定规则的目的“为了大多数程序员可以得到更多的好处”， 如果在团队运作中认为某个规则无法遵循，希望可以共同改进该规则。
参考该规范之前，希望您具有相应的C++语言基础能力，而不是通过该文档来学习C++语言。

了解C++语言的ISO标准；
熟知C++语言的基本语言特性，包括C++ 03/11/14/17相关特性；
了解C++语言的标准库；

总体原则
代码需要在保证功能正确的前提下，满足可读、可维护]]></description><category></category></item><item><title><![CDATA[Bezier曲线（附Python实现代码）]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/116644323</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/116644323</guid><author>TYILY</author><pubDate>Tue, 11 May 2021 10:37:28 +0800</pubDate><description><![CDATA[上一讲讲解了伯恩斯坦多项式，现在就开始对Bezier曲线进行研究。首先Bezier曲线采用伯恩斯坦多项式作为基函数。
首先，我们定义Bezier曲线的表达式:
C(t)=∑k=0nPkBkn(t)(1)
\begin{aligned}
  \mathcal{C}(t) = \sum_{k=0}^n \mathbf{P}_k B_k^n(t)
\end{aligned} \tag{1}
C(t)=k=0∑n​Pk​Bkn​(t)​(1)
其中，(P)0≤k≤n\left( \mathbf{P} \right)]]></description><category></category></item><item><title><![CDATA[有限元变分形式]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/116533714</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/116533714</guid><author>TYILY</author><pubDate>Sat, 08 May 2021 16:49:56 +0800</pubDate><description><![CDATA[有如下的微分方程
ad2udx2+b=0,0≤x≤2Lu∣x=0=0adudx∣x=2L=R
\begin{aligned}
&amp; a\frac{d^2u}{dx^2}+b=0, \quad 0 \leq x \leq 2L \\
&amp; \left. u \right|_{x=0}=0 \\
&amp; a\left. \frac{du}{dx} \right|_{x=2L}=R
\end{aligned}
​adx2d2u​+b=0,0≤x≤2Lu∣x=0​=0adxdu​∣∣∣∣​x=2L​]]></description><category></category></item><item><title><![CDATA[有限元分析简介及伽辽金法]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/116496208</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/116496208</guid><author>TYILY</author><pubDate>Fri, 07 May 2021 16:19:03 +0800</pubDate><description><![CDATA[1.1 什么是有限元方法
有限元方法(Finite Element Method, FEM)是一种求解由偏微分方程描述或可表示为泛函极小化问题的数值方法。感兴趣的域被表示为有限单元(finite elements)的集合。有限元中的逼近函数是根据所求物理场的节点值确定的。FEM将一个连续的物理问题转化为节点值未知的离散化有限元问题，并得到一个线性方程组，求解该方程组就可以获得待求的物理量。有限元内部的值可以使用节点值恢复。
值得一提的是，FEM的两个特点：

在有限元上的物理场的分段近似提供了很好的精度，即]]></description><category></category></item><item><title><![CDATA[伯恩斯坦多项式(Bernstein Polynomials)]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/116455436</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/116455436</guid><author>TYILY</author><pubDate>Thu, 06 May 2021 15:47:49 +0800</pubDate><description><![CDATA[多项式是非常有用的数学工具，因为它们定义简单，可以在计算机系统上快速计算，并代表各种函数。多项式可以很容易进行微分和积分，并且可以拼接在一起形成样条曲线，该曲线可以逼近任何函数，达到所需的任何精度。我们在小学四年级就已经学过多项式的相关知识，让我们来回顾一下
p(t)=antn+an−1tn−1+⋯+a1t+a0(1)
p(t)=a_nt^n+a_{n-1}t^{n-1}+\cdots+a_1t+a_0 \tag{1}
p(t)=an​tn+an−1​tn−1+⋯+a1​t+a0​(1)
上式表示某些初等多]]></description><category></category></item><item><title><![CDATA[偏微分方程的有限元解法]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115803709</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115803709</guid><author>TYILY</author><pubDate>Sat, 17 Apr 2021 23:04:18 +0800</pubDate><description><![CDATA[本文我们以求解泊松方程为例，讲述微分方程的有限元解法，附FEniCS代码

方程定义
首先是泊松方程的表达式
−Δu=f&nbsp;in&nbsp;Ω(1)
-\Delta u=f \qquad \text{ in } \Omega \tag{1}
−Δu=f&nbsp;in&nbsp;Ω(1)
其边界条件
u∣ΓD=u0&nbsp;on&nbsp;ΓD∂u∂n∣ΓN=g&nbsp;on&nbsp;ΓN=∂Ω−ΓD
u|_{\Gamma_D}=u_0 \qquad \text{ on } \Gamma_D.]]></description><category></category></item><item><title><![CDATA[使用广义α方法(the generalized-α method)求解时变动力学问题]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115798637</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115798637</guid><author>TYILY</author><pubDate>Sat, 17 Apr 2021 17:27:59 +0800</pubDate><description><![CDATA[本文讲解如何使用使用广义α方法求解时变动力学问题，附带FEniCS代码

控制方程及其变分形式
首先我们定义我们需要求解的弹性力学方程
∇⋅σ+ρb=ρu¨(1)
\nabla\cdot\textcolor{red}{\sigma}+\rho b = \rho \ddot{u} \tag{1}
∇⋅σ+ρb=ρu¨(1)
其中σ\sigmaσ是应力张量，bbb是体元外力，ρ\rhoρ是密度，u¨\ddot{u}u¨表示位移uuu对时间的ttt的二阶导数，即加速度。在这个问题中，我们需要求解的是位移uuu。.]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（八）——纹理的应用（环境光贴图、凹凸贴图、法线贴图）]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115431105</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115431105</guid><author>TYILY</author><pubDate>Sun, 04 Apr 2021 17:39:38 +0800</pubDate><description><![CDATA[纹理的应用
环境光贴图
环境光贴图可以让模型反射出周围环境的样子，如下图右侧，而左侧的图像就是环境光贴图。

环境光一般都存储在一个球上(Spherical Map)，并且我们可以像展开地球仪一样展开成环境光贴图。

展开后的贴图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QrHAgZcv-1617529106635)(C:\Users\63092\AppData\Roaming\Typora\typora-user-images\image-20210404162758]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（七）——重心坐标、应用纹理&Mipmap]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115429452</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115429452</guid><author>TYILY</author><pubDate>Sun, 04 Apr 2021 15:49:50 +0800</pubDate><description><![CDATA[重心坐标(Barycentric Coordinates)
上几节课都提到了在三角形内部做插值，为了研究此问题，我们引入重心坐标(Barycentric Coordinates)。重心坐标的应用很广泛，如在像素着色器(Fragment shader)中我们已知三角形三个顶点的法向量，去插值求解三角形内部每个像素的法向量；在纹理映射时，我们已知三角形三个顶点在纹理坐标中的u,vu,vu,v值，去插值获得三角形内部纹理坐标的值。
我们定义三角形坐标系(coordinate system for triangle]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（六）——布林-冯反射模型、图形管线、纹理映射]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115408233</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115408233</guid><author>TYILY</author><pubDate>Fri, 02 Apr 2021 21:35:40 +0800</pubDate><description><![CDATA[图形学笔记六
上节课我们讨论了布林-冯模型中的漫反射部分，本节将继续讨论该模型中的高光和环境光部分。
布林-冯反射模型(Blinn-Phong Reflectance Model)
高光
对于模型的高光，我们只可以从镜面反射方向看到，也就是说当我们眼睛看的方向V\bold{V}V和镜面反射方向R\bold{R}R很接近时可以看到高光。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6PbZ94Qv-1617370306934)(https://img.rruu.net/ima]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（五）——深度测试、着色]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115360628</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115360628</guid><author>TYILY</author><pubDate>Wed, 31 Mar 2021 20:55:05 +0800</pubDate><description><![CDATA[可见性与遮挡(Z-buffering)
根据常识，我们很容易的想到画家在作画的时候如何体现遮挡。在作画时一般都是先画远处的物体，之后再画近处的物体，这样画出的画就可以体现出遮挡，该算法称为画家算法。

画家算法需要先对所有物体的深度进行排序（最少需要nlog⁡nn\log nnlogn的时间复杂度），然后依次按顺序画在屏幕上（光栅化）。画家算法虽然思想简单，但并不能解决所有的遮挡问题，比如下图的情况

为了解决画家算法的缺点，在图形学中引入了深度缓存算法(Z-Buffer)。
Z-Buffer算法同时维护一]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（四）——反走样、抗锯齿]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115351836</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115351836</guid><author>TYILY</author><pubDate>Wed, 31 Mar 2021 15:35:20 +0800</pubDate><description><![CDATA[上节课我们判像素点是否在三角形内得到了三角形光栅化的结果，但是这样得到的三角形会产生严重的锯齿现象（走样Aliasing），这节课我们就来讨论抗锯齿（反走样Anti-Aliasing）

产生这样瑕疵(Artifacts)的原因是由于我们对三角形进行了采样(Sampling)。而采样会造成Artifacts的原因是图像或信号变化的太快了，而采样的速度太慢。
针对采样造成的走样问题，我们可以先对三角形进行滤波（模糊）处理，然后再采样就可以改善锯齿现象。

这里要注意，一定是先做滤波再做采样才可以达到反走样的效]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（三）——三角形光栅化]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115312525</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115312525</guid><author>TYILY</author><pubDate>Mon, 29 Mar 2021 21:52:15 +0800</pubDate><description><![CDATA[三角形光栅化
经过上节课的MVP(Model, View, Projection transformation)变换之后，所有的物体都会在[−1,1]3[-1,1]^3[−1,1]3的立方体中，本节就来讨论如何将这个[−1,1]3[-1,1]^3[−1,1]3的立方体画在屏幕上（光栅化）。下面我们给出一些定义：
什么是屏幕？

像素的数组
数组的大小：分辨率
一个典型的光栅(raster)成像设备

光栅化==把东西画在屏幕上。对于像素，在本节中，我们将其抽象成一个具有唯一颜色（不会变色）的小方块。像素的坐]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（二）——三维变换、正交&透视投影]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115282712</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115282712</guid><author>TYILY</author><pubDate>Sun, 28 Mar 2021 16:21:01 +0800</pubDate><description><![CDATA[三维变换
和上节一样，我们使用齐次坐标

3D点：(x,y,z,1)⊤(x,y,z,1)^\top(x,y,z,1)⊤
3D向量：(x,y,z,0)⊤(x,y,z,0)^\top(x,y,z,0)⊤

通常情况下，w≠0w\neq0w​=0，3D点表示为(x/w,y/w,z/w,1)⊤(x/w,y/w,z/w,1)^\top(x/w,y/w,z/w,1)⊤
则我们可以使用4×44\times44×4矩阵表示仿射变换
[x′y′z′1]=[abctxdeftyghitz0001][xyz1]
\left[\]]></description><category></category></item><item><title><![CDATA[现代计算机图形学笔记（一）——二维变换]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115256603</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115256603</guid><author>TYILY</author><pubDate>Fri, 26 Mar 2021 22:23:25 +0800</pubDate><description><![CDATA[二维变换
缩放
在等比例缩放情况下

如上图所示，若将图片缩小两倍，则坐标x,yx,yx,y的变换为
x′=sxy′=sy
x'=sx \\
y'=sy
x′=sxy′=sy
表示为矩阵形式
[x′y′]=[s00s][xy]
\left[\begin{array}{l}
x^{\prime} \\
y^{\prime}
\end{array}\right]=\left[\begin{array}{ll}
s &amp; 0 \\
0 &amp; s
\end{array}\right]\left[\beg]]></description><category></category></item><item><title><![CDATA[C++内联函数详解]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/115206460</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/115206460</guid><author>TYILY</author><pubDate>Thu, 25 Mar 2021 15:46:40 +0800</pubDate><description><![CDATA[内联函数是什么
C++中支持内联函数，其目的是为了提高函数的执行效率，用关键字inline放在函数定义(注意是定义而非声明)的前面即可将函数指定为内联函数，内联函数通常就是将它在程序中的每个调用点上“内联地”展开。
我们通常定义以下函数来求两个整数的最大值：
int max(int a, int b)
{
    return a &gt; b ? a : b;
}

为这么一个小的操作定义一个函数的好处有：

阅读和理解函数max的调用，要比读一条等价的条件表达式并解释它的含义要容易得多
如果需要做任何修]]></description><category></category></item><item><title><![CDATA[非均匀有理B-样条(Non-Uniform Rational B-Splines, NURBS)基础知识]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/114637581</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/114637581</guid><author>TYILY</author><pubDate>Wed, 10 Mar 2021 16:39:12 +0800</pubDate><description><![CDATA[B样条是无理的，组成无理B样条曲线或曲面。有理曲线或曲面可以精确地表示圆锥截面。非均匀有理B样条(Non-Uniform Rational B-Splines, NURBS)就是为了表达更精确的曲面引入的，其控制顶点包含权重。NURBS的基函数与B样条不同，但结点向量、张量积的性质和细分规则是不变的。
1 几何角度
在Rd\mathbb{R}^dRd空间的NURBS实体通过在Rd+1\mathbb{R}^{d+1}Rd+1空间的B样条实体投影得到，其中ddd是维数。图1说明了一个在R2\mathbb{R}^]]></description><category></category></item><item><title><![CDATA[泛函的简单理解]]></title><link>https://blog.youkuaiyun.com/TYILY/article/details/108890327</link><guid>https://blog.youkuaiyun.com/TYILY/article/details/108890327</guid><author>TYILY</author><pubDate>Wed, 30 Sep 2020 21:11:48 +0800</pubDate><description><![CDATA[泛函
设CCC是一个由函数组成的集合，对于CCC中的任何一个元素y(x)y (x)y(x)，数集BBB中都有一个元素FFF与之对应，称FFF是y(x)y(x)y(x)的泛函（functional），记作F=F[y(x)]F = F [ y ( x )]F=F[y(x)]
例如，C={x,x2,x3,x4,x5,…,xn}C=\left\{ x,x^2, x^3,x^4,x^5,\dots,x^n \right\}C={x,x2,x3,x4,x5,…,xn}；F={R}F=\{R\}F={R}即实数集，则FF]]></description><category></category></item></channel></rss>