自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (3)
  • 收藏
  • 关注

原创 【Java17】组合

则在实现代码复用的同时,保留了原本类的封装性。这两者一定程度上是有取舍的。

2024-07-12 22:15:14 373

原创 【Java16】多态

对面向对象语言来说,所有的对象(Object),或者说类的实例,本质上都是引用变量。因此,多态最主要就是针对对象来说的:声明时引用变量指向的对象的类型,和运行时引用变量指向的对象的类型不一致。即其编译时类型是父类类型,运行时类型是子类类型。那么也可以反过来,执行。引用变量在编译阶段只能调用其编译时类型拥有的方法,但是在运行时可以执行其运行时类型拥有的方法。类型转换运算符可以实现基本类型之间的转型,也能实现引用变量的转型。,这种引用变量的类型在声明它的时候就决定了;,这种变量的类型由实际赋给它的对象决定。

2024-07-11 22:21:17 854

原创 【Java15】继承

(2)在子类的方法中也可以使用。

2024-07-09 00:00:01 766

原创 【Java14】构造器

如果有一天,A的代码改了,那么就要把B,C……实际上,调用构造器时,系统首先为该对象分配内容,并对这个对象执行默认初始化,这时这个对象已经产生了。当构造器执行完毕后,这个对象以构造器的返回值(注意构造器并没有显式定义返回值,但默认返回值就是对象的引用)被返回,通常直接赋值给一个。如果类中没有任何显式定义的构造器,系统会提供一个无参数的构造器,这个构造器执行体为空,不做任何事情(但是实际上执行了默认初始化)。的话,A修改完,B,C……既要在B中调用A,又不想创建额外的对象,方法就是依然使用构造器B来。

2024-07-08 22:41:01 432

原创 【Java13】包

虚拟机在装载lee.Hello类时,会依次搜索CLASSPATH环境变量所指定的系列路径,查找这些路径下是否包含lee路径,并在lee路径下查找是否包含Hello.class文件。如果在lee包下再定义一个子包,那么子包中的类不能直接访问lee包中的类了。此外,在使用子包中的类时,要使用该类的全名(包名+类名),不能省略前面lee包的路径。按道理,-d是指定编译结果.class文件的位置,这里指定是当前目录(.),但实际上是在当前路径下创建了一个文件夹lee,里面包含Hello.class。

2024-07-07 22:23:27 762

原创 【Java12】封装

从此之后,要么用锁开(成员类),要么通过这几个窗子来访问箱子内部的东西。如果一个Java源文件中,所有的类都没有public修饰,那这个源文件的文件名可以是任意名称;但是一旦有一个类被修饰为。三个访问控制符,表示3个访问控制级别(权限),再加上一个没有任何访问控制符的级别(default),一共4个级别。封装(Encapsulation)是面向对象的三大特征之一(另两个是继承和多态),指的是。,这是由于Java独特的**包(package)**机制导致的。在C++的基础上,Java的访问控制多了一个级别,

2024-07-07 22:22:33 445

原创 【Java11】变量的初始化和内存中的运行机制

对引用类型的局部变量,方法或代码块结束时,它销毁。此时堆中的对象或数组没有人指向它了。若没有任何引用变量指向它,会启动垃圾回收机制,销毁堆内存中的它。尽量使用类来调用类变量。虽然Java允许使用对象来调用类变量,但这太容易造成误会了。没必要非考验自己的智商。系统加载类或创建类的实例时,系统自动为成员变量分配内存空间,然后自动为成员变量指定初始值。

2024-07-05 22:49:09 315

原创 【Java10】成员变量与局部变量

Java中的变量只有两种:成员变量和局部变量。和C++不同,没有全局变量了。,field,我习惯称之为**”属性“**(但这些年,因为attribute更适合被叫做属性,所以渐渐不这么叫了)。是在方法中定义的变量。

2024-07-05 22:13:38 397

原创 【Java09】方法(下)

形参的类型后加。

2024-07-04 22:27:37 260

原创 【Java08】方法(上)

没有独立存在的。

2024-07-03 00:16:23 350

原创 【Java07】类中的this关键字

当static修饰的方法遇到this时,因为static修饰的方法属于类方法,不属于某个具体对象。因此,static方法中的this是无法指向明确的对象的。上述代码中,info()前使用this是允许的(Java允许),但是实际上应该是Example.info()才对。如果仅仅如此,this也就是个指示符而已,但是this还有一个作用,就是可以作为对象的引用变量。上述代码中,在run中实例化dog对象d,再调用d的方法,这么做本身没有问题,但是开辟了一块新的堆内存。构造器中的this也可以省略。

2024-06-25 23:41:56 250

原创 【Java06】Java中的类与对象

Java中对象(实例)的本质,是一个引用变量,和C++,以及之前介绍的数组引用变量类似。类似地,当没有任何指针指向这个对象,Java的垃圾回收机制就会启动。Java中的static关键字用来修饰方法、成员变量,表示。虽然static翻译成“静态”,但其实真正作用就是区分。因此也把static修饰的方法或变量称为。不用static修饰的成员方法或变量称为。这4中成员到底属于类本身还是属于单一实例。

2024-06-25 00:08:58 290

原创 【Java05】Java中的多维数组

从数组底层运行机制上看,Java没有多维数组一说。所谓多维数组,是说一个引用变量指向的元素也是引用变量。这里相当于初始化了一个一维数组,这个数组的长度是length,这length个元素的初始值都是。是个指向type类型元素的数组。倘若type也是数组引用变量,比如。按照上述方式定义的二维数组,本质上还是一维数组。,这时并没有关心第二个维度的初始化。,那么这个数组就可以定义为。时,和普通类型没有区别。

2024-06-17 22:32:33 217

原创 【Java04】引用变量数组初始化的内存机制

引用类型数组指向的元素也是引用。

2024-06-16 23:05:37 255

原创 【Java03】Java中数组在内存中的机制

初始化4块内存:a,b是两个引用变量(指针),在栈上;堆内存中的对象不会随方法结束和销毁。只有没有任何引用变量引用它时,系统垃圾回收器才会。只要类型兼容,就可以让一个数组变量指向另一个实际的数组(指针的赋值)。这实际上是让b指向a指向的数组对象。通过这个数组的引用变量(指针)来访问。Java中的数组变量其实就是指针。Java中的数组是一种。如果想要访问数组元素,

2024-06-16 22:34:51 304

原创 【Java02】Java中数组的定义与初始化

推荐第一种方式。这种方式容易让人理解,数据类型是type[],对象名称是arrayName。第二种方式有些老旧了。由于数组是一种引用变量(也就是一个指针),所以定义的时候还没有指向任何有效的内存空间,因此在定义数组的时候不能指定数组的长度,也不能直接使用。必须进行初始化。可以使用var让系统自动推断变量类型,既可以用于静态初始化,也可以用于动态初始化。

2024-06-10 21:57:08 659

原创 【Java01】Java 17中的switch

如果表达式的case块中有多条语句,使用yield返回值。做为表达式使用时,可以将其赋值给某个变量。

2024-06-10 21:31:54 317

原创 【笔记】Polygon mesh processing 学习笔记(10)

应用问题分析挑战层次化的方法两个半球空间变换的方向信息,分配给每个点Magnitude + directionMulti-valued field常见的场:1-vector field (有大小有方向),2-direction field (只有方向没大小,也叫line field,2-RoSy field),131^313-vector field(三个独立的向量,这个3表示3个独立);4-vector field(4方向的向量场,只有一个独立的方向);4-direction field(没有长度,也叫u

2022-06-28 20:55:07 588 1

原创 【笔记】Polygon mesh processing 学习笔记(9)

simplification,approximation,decimation把一个模型transform到另一个模型,更少的面、边、顶点简化和近似通常被用户定义的一个质量标准(quality criteria)来控制Vertex removal/ vertex insertionEdge collapse / vertex splitHalf-edge collapse / vertex split注意要避免illegal collapse (非流形)Vertex contraction,这种操作使顶点-

2022-06-05 09:37:03 520

原创 【笔记】Polygon mesh processing 学习笔记(8)

多边形网格处理(8)Mapping参数化和Deformation的本质都是MappingIntroductionf:Ω⊂Rd→Rdf: \Omega \subset R^d \rightarrow R^df:Ω⊂Rd→RdMesh-based mapping仿射变换,定义在每个三角形面片上的ft(x)=Jtx+btf_t(x)=J_t x + b_tft​(x)=Jt​x+bt​Meshless mappingf(x)=x+∑i=1mciBi(x)f(x) = x + \sum_

2022-05-30 16:01:02 925

原创 【笔记】Polygon mesh processing 学习笔记(7)

多边形网格处理(7)7. RepairingDefinetionProblem statementModel repair, removing artifacts from a geometric model, generate output suitable for further processing by downstream applciations that require centain quality guarantees.Application dependentDepen

2022-05-16 22:11:02 384

原创 【笔记】Polygon mesh processing 学习笔记(6)

6. Deformation(变形)引言所谓变形,是指交互式地改变网格。形式化定义:S′={p+d(p)∣p∈S}\mathcal{S}' =\{p+d(p)|p\in \mathcal{S}\}S′={p+d(p)∣p∈S}对离散三角网格而言,位移函数ddd是分段线性的,完全由原始网格的顶点对应的位移向量定义。用户预先定义一个位移区域, handle points,同时约束一些区域保持不变,fixedpointsfixed pointsfixedpointsd(pi)=diˉ,pi∈

2022-05-10 14:19:14 701

原创 【笔记】Libig从入门到放弃(续)

参数化参数化方法可大致分为四族:Single patch, fixed boundary. parametrize a disk-like part of the surface given fixed 2D positions for its boundary. 简单,高校,但是参数化后的map有很大distortionSingle patch, free boundary. 减少了map distortion,但是可能出现self-intersectionGlobal parametrizat

2022-05-02 20:54:47 943

原创 【笔记】Libigl从入门到放弃

主要内容Libigl基本知识离散几何参量与算子Libigl基本知识Libigl设计原则没有复杂的数据类型。只使用矩阵和向量;尽可能减少对外部库的依赖只有头文件(也可以做一个静态编译库)函数封装性下载Libiglgit clone https://github.com/libigl/libigl.gitLigigl核心功能只依赖C++标准库和Eigen但是编译起来还是挺费劲的,哈!Mesh表示Libigl使用Eigen库编码向量和矩阵Eigen参考指南: Dense

2022-04-30 12:10:11 3398

原创 【笔记】《WebGL编程指南》学习(10)

WebGL编程指南学习(10)This is just the end of the beginning. —— Winston Curchill10. 高级技巧(又续)绘制阴影实现阴影有若干种不同的方法,书里的例子是阴影贴图(Shadow map)或称深度贴图(Depth map)如何实现阴影?物理上:对一根光线上的两个点,如果一个点的z值大于另一个点,则它在阴影中算法上:计算光源到物体的距离根据计算出的结果,绘制场景计算机实现上:一组着色器用来计算光源到物体的距离,得到一

2022-04-24 14:36:20 1515

原创 【笔记】《WebGL编程指南》学习(9)

WebGL编程指南学习(9)Ragnarok!9. 高级技巧(续)α\alphaα混合如何实现α\alphaα混合两个步骤:开启混合功能gl.enable(gl.BLEND)指定混合函数gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)混合函数gl.blendFund()在进行α\alphaα混合时,实际上用到了两个颜色,源颜色(source color)和目标颜色(destination color)。前者是“待被混合的颜色”,也就是

2022-04-09 22:19:36 335

原创 【笔记】《WebGL编程指南》学习(8)

WebGL编程指南学习(8)漫长的旅行即将到达终点……8. 高级技术8.1 用鼠标控制物体旋转如何实现物体的旋转?如何旋转物体?使用MVP矩阵来变换顶点的坐标;根据鼠标的移动情况创建旋转矩阵,更新MVP矩阵算法思路在鼠标左键按下时记录鼠标的初始坐标;然后在鼠标移动的时候用当前坐标减去初始坐标,获得鼠标的位移;然后根据这个位移来计算旋转矩阵。这就需要一个鼠标移动事件的监听器。注册event handlertick()函数,执行动画function main() { ...

2022-04-06 14:06:31 1277

原创 【笔记】《WebGL编程指南》学习笔记(7)

WebGL编程指南学习(7)7. 层次模型由多个简单的部件组成的复杂模型为复杂物体(机器人手臂)建立具有层次化结构的三维模型7.1 多个简单模型组成的复杂模型层次结构模型当情况较为简单时,实现“部件A转动带动部件B转动”可以很直接,只要对部件B也施以部件A的旋转矩阵即可情况复杂一些时,需要考虑多个旋转矩阵。按照模型中各个部件的层次顺序,从高到低逐一绘制,并在每个关节上应用模型矩阵例程:单关节模型两个立方体部件组成的机器人手臂:arm1(上臂)和arm2(前臂)。使用左右方向键控制a

2022-03-30 14:18:34 398

原创 【笔记】Polygon mesh processing读书笔记(5)

多边形网格处理(5)5. 参数化(Parameterization)5.1 通用目标计算一个目标的参数化意味着为其附着一个坐标系统。这个坐标系统有许多可能的应用,比如纹理映射、法向映射(normal mapping)、重网格(re-meshing)、建模与仿真所谓参数化,是指一个函数,把3D表面以一一对应的方式映射到2D域5.2 三角网格的参数化Triangulated surface(三角网格表面),由顶点、位置和三角表面定义——可以使用分段线性函数参数化——这个分段与三角形表面对应也

2022-03-29 22:01:10 645

原创 【笔记】《WebGL编程指南》学习(6)

WebGL编程指南学习(6)6. 光照光照使场景变得逼真~6.1 从物理出发计算机图形学中着色(shading)的真正含义就是,根据光照条件重建“物体各表面明暗不一的效果”的过程两个物理上的事情需要考虑:发出光线的光源的类型物体表面如何反射光线光源平行光(directional light),或者叫方向光,类似太阳光;点光源(point light),类似灯泡环境光(ambient light),其他非直射的光其他特殊的光源,如聚光灯(spot light)反射类型物体反

2022-03-22 17:27:01 643

原创 【笔记】《WebGL编程指南》学习(5)

WebGL编程指南学习(5)这篇笔记是真正意义上的干货,字面意义上的”干“,干巴巴,哈哈哈!5. GLSL ES(OpenGL ES 着色器语言)WebGL并不支持GLSL ES 1.00的所有特性;实际上,它支持的是1.00版本的一个子集GLSL ES是在OpenGL 着色器语言(GLSL)的基础上,删除和简化一部分功能后形成的5.1 你好,着色器!基础GLSL是大小写敏感的每个语句以分号结束(非常像C)执行次序着色器语言从main()函数开始执行函数需要明确指定返

2022-03-21 21:01:57 518

原创 【笔记】Polygon mesh processing读书笔记(4)

多边形网格处理(4)4. Smoothing(平滑)网格平滑(mesh smoothing)从抽象的层面看,网格平滑是指设计和计算一个三角形的光滑函数f:S→Rd\bold{f}:\mathcal{S}\rightarrow \mathbb{R}^df:S→RdMesh smoothing 是几何处理的基础工具光滑函数可以使用,例如顶点位置、纹理坐标、或顶点偏移量来描述可用于网格参数化、各向异性remeshing、空洞填补、变形等任务网格平滑的两块内容:去噪和光顺去噪的意思是从光滑

2022-03-21 12:45:51 680

原创 【笔记】WebGL编程指南学习(4)

WebGL编程指南学习(4)4. 最后一块拼图在学会处理顶点,包括处理顶点的坐标、Javascript和WebGL管线的数据通信、坐标变换之后,还需要处理顶点的其他数据——如颜色等。此外,还需要处理将图像(或纹理)映射到图形或三维对象表面上。这就是WebGL的最后一块拼图。将顶点的其他(非坐标)数据(如颜色)传入顶点着色器发生在顶点着色器和片元着色器之间的从图形到片元的转化,又称为图元光栅化将图像(或称纹理)映射到图形或三维对象的表面上4.1 将非坐标数据传入顶点着色器4.1.1 第一个例

2022-03-20 22:16:10 1354

原创 【笔记】Polygon mesh processing 读书笔记(3)

文章目录3. 微分几何曲线弧长曲率表面表面的参数化表示度量性质**第一基本形式****各向异性**表面曲率**Euler定理****曲率张量****固有几何(Intrinsic Geometry)****Laplace算子**离散微分算子局部平均区域法向量梯度**离散Laplace-Meltrami算子****Uniform Laplacian****余切形式**离散曲率离散曲率张量3. 微分几何曲线光滑平面曲线,可认为是可微的一维流形,参数化为:x:[a,b]→R2,x(u)=(x(u),y(

2022-03-19 12:47:11 782

原创 【笔记】Polygon mesh processing读书笔记(2)

多边形网格处理系列第二篇文章目录@[toc]2. 网格数据结构基于面的数据结构基本情况优缺点改进的face-based数据结构基于边的数据结构基于半边的数据结构基于有向边的数据结构小结2. 网格数据结构判断一种数据结构的好坏标准包括(但不限于):构建它的时间响应特定查找的时间执行特定操作的时间存储消耗与冗余基于面的数据结构基本情况每个面包含3个顶点位置,不能表示网格连接关系也被称为triangle soup或者polygon soup一些数据转换格式,如stereolig

2022-03-19 12:39:20 608

原创 【笔记】Polygon mesh processing 读书笔记(1)

参考书籍:Polygon mesh processing,2010大约分8篇,这是第一篇0. 前言3D 获取技术计算机断层扫描(computer tomography)核磁共振成像(MR,magnetic resonance imaging)3D 激光扫描 (3D laser scanning)超声 (ultrasound)雷达 (radar)显微成像(microscopy)Botsch的几何处理管线输入数据–>移除拓扑和几何错误–>分析表面质量–>表面平滑(.

2022-03-14 13:33:25 924

原创 【笔记】《WebGL编程指南》学习(3)

WebGL编程指南学习(3),界明城,2022-3-33. 再来一点点数学关于视点,除了Viewpoint-LookAt-UpDirection之外,还有更多需要考虑的东西,比如视场,比如深度3.1 可视范围(Orthographic)类似人眼,在渲染场景的时候,定义了可视空间(view volume)3.1.1 可视空间两类常用的可视空间:长方体可视空间,由**正射投影(orthographic projection)产生;四棱锥可视空间,由透视投影(perspective projectio

2022-03-03 12:18:36 385

原创 【笔记】《WebGL编程指南》学习(2)

WebGL编程指南学习(2),界明城,2022-3-22. 只是一点数学罢了其实困扰我的,不是代码,而是数学——by某计算机科研狗2.1 WebGL坐标系统WebGL的X轴水平(正方向向右),Y轴垂直(正方向向上,书中有误),Z轴垂直于屏幕(正方向向外)但WebGL好像是右手坐标系,又好像不完全是2.2 移动、旋转和缩放可以使用右手法则确定旋转方向逆时针:观察者沿Z轴负方向进行观察,看到的物体是逆时针旋转的,这种情况又可称为正旋转2.2.1 4×4的变换矩阵数组存储矩阵元素可以按行主序,

2022-03-02 13:20:18 545

原创 【笔记】《WebGL编程指南》学习(1)

WebGL编程指南学习,界明城,2022-3-11. 只是简单的迁移罢了——在JavaScript中调用WebGL在JavaScript中调用WebGL,类似于在C++中调用OpenGL,也类似在Java中调用NDK,是一种类似客户端-服务器的请求-返回两层机制。API就起到了通信的作用。因此,难点在于:如何在JavaScript中获取WebGL传来的数据,主要是指WebGL里的变量(属性)及相关内容;如何将JavaScript中的数据传到WebGL1.1 着色器与JavaScript的数据“

2022-03-01 22:57:52 648

原创 【笔记】《WebGL编程指南》学习(0)

WebGL编程指南学习,界明城,2022-3-10. WebGL编程,从入坑到放弃知识路径《WebGL编程指南》环境搭建WebGL编程范式0.1 知识路径Level 1:了解计算机图形学,尤其是渲染相关概念Level 2:用过OpenGL,知道0.2 《WebGL编程指南》环境搭建0.2.1 TODO对本书的评价,将在整本书读完后更新0.2.2 代码运行环境本机运行环境:MacOS Monterey 12.2.1编辑器:VS Code本书对WebGL特性的支持:WebG

2022-03-01 20:17:14 949 1

Time of flight and depth imaging

Tof相机及深度应用,2014年最新出版,GCPR会议集

2015-03-30

软件成本估算报告实例

软件成本估算报告,管理方面的,采用的FP的方法进行项目估算。

2010-01-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除