From 2a9aebb57d99ad02a323e50d843aec1804e832cd Mon Sep 17 00:00:00 2001 From: lmj01 Date: Thu, 7 Dec 2023 08:42:38 +0800 Subject: [PATCH] update --- articles/2023/associateEditor.md | 36 ++++++++++++++++++++++++++++++++ articles/2023/smile.md | 21 +++++++++++++++++-- html/pbr3ed.html | 14 +++++++++++++ index/article.md | 1 + web/index.md | 10 +++++++++ 5 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 articles/2023/associateEditor.md diff --git a/articles/2023/associateEditor.md b/articles/2023/associateEditor.md new file mode 100644 index 0000000..c59ce67 --- /dev/null +++ b/articles/2023/associateEditor.md @@ -0,0 +1,36 @@ +# 协调编辑 +> 是分布式系统的一种实现方式 +>> 多人同时编辑的趋势是很大的,协同工作也是一个趋势. + +## 技术方案 + +### CRDT +> CRDT 的正式定义出现在 Marc Shapiro 2011 年的论文Conflict-free replicated data types中(而2006 的Woot可能是最早的研究)。提出的动机是因为最终一致性(Eventual Consistency) 的冲突解决设计很困难,很少有文章给出设计指导建议,而随意的设计的方案容易出错。所以这篇文章提出了简单的、理论证明的方式来达到最终一致性,也就是 CRDT。 + +CRDT(conflict-free replicated data type)无冲突复制数据类型,是一种可以在网络中的多台计算机上复制的数据结构,副本可以独立和并行更新,不需要在副本之间协调,并保证不会有冲突. + +常用在协作软件上,如共同编辑\读取共享文档\数据库或状态的场景. + +#### Op-based CRDT + +#### State-based CRDT + +### OT +> Operation Transformation, OT算法是一种操作合并指导思想,是一类算法,在不同的应用场景下有不同实现。 +OT算法的全称是Operation Transformation,是在线协作系统中经常使用的操作合并算法 + + +## 参考 +- [什么是CRDT?](https://www.zhihu.com/question/507425610) +- [Figma 前 CTO Evan Wallace 的文章How Figma’s multiplayer technology works](https://madebyevan.com/figma/how-figmas-multiplayer-technology-works/) +- [Realtime editing of ordered sequences--分数索引](https://www.figma.com/blog/realtime-editing-of-ordered-sequences/#fractional-indexing) + +- [Operational Transformation Frequently Asked Questions and Answers](https://www3.ntu.edu.sg/scse/staff/czsun/projects/otfaq/) +- [ot实现的可视化](http://operational-transformation.github.io/) + - [github](https://github.com/Operational-Transformation/ot.js) +- [ShareDB is a realtime database backend based on Operational Transformation (OT) of JSON documents. It is the realtime backend for the DerbyJS web application framework.](https://github.com/share/sharedb) +- [quilljs-delta就是一种OT算法实现](https://github.com/quilljs/delta) +- [在 2012 年,CAP 定理的作者 Eric Brewer 写了一篇文章CAP Twelve Years Later: How the "Rules" Have Changed解释了“CAP 特性三选二” 的描述其实具有误导性,实际上 CAP 只禁止了设计空间的很小一部分即存在分区时的完美可用性和一致性;而实际上在 C 和 A 之间的权衡的设计非常灵活,CRDT 就是一个很好的例子](https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/) +- [operational-transform-hard](https://digitalfreepen.com/2018/01/04/operational-transform-hard.html) +- [Figma 是如何做协同编辑的?](https://mp.weixin.qq.com/s?__biz=MzI0NTc2NTEyNA==&mid=2247487695&idx=1&sn=6e9c0d623e9c9aaf642ef3e35209a343&chksm=e948d5a4de3f5cb277aca89e4c5e662545700fe19bcdbe9ee89248f9172627186cb2971c3d97&scene=126&sessionid=1701820941#rd) + diff --git a/articles/2023/smile.md b/articles/2023/smile.md index b8359e5..2150575 100644 --- a/articles/2023/smile.md +++ b/articles/2023/smile.md @@ -35,6 +35,10 @@ ### 唇侧 labial +### prosthesis +修复体 + + ## 接口 ### 2-factor @@ -44,18 +48,31 @@ labial - ## 算法 +最初开始对接算法那边时,算法那边给了一些思路,我结合起来,就使用了最简单的数值做计算,这样每个功能都可以很快速的显示对应要的结果. +可是在对每个功能整合在一起时,就出现问题了, 最后杰伟纠正,让全部使用矩阵来计算. + +其实我内心是想的很多,可是没有思路,看到的都是问题,坐标牙,光是给点就没有在这些基础上构建自己的体现. 使用矩阵,在默认的图像坐标系上构建一个新的标准坐标系,用来对所有的图像进行计算. -每个入口可调的参数都需要对应的一个矩阵 +每个入口可调的参数都需要对应的一个矩阵, 最后把每个作用的变换矩阵都应用到对应的牙齿点上面就可以了. + ### 曲率调整 y轴方向上的调整, ### 长度调整 +### 曲线拟合 + +使用CatmullRom,但是我使用的时候,目前还需要一个等距版本,是所有线条上的控制点的相距是相等的,因为[three.js的CatmullRomCurve3](https://threejs.org/docs/#api/en/extras/curves/CatmullRomCurve3)中的实现了这个的 + +### 邻接关系 +要保证牙齿的邻接关系,缩放后平移到对应的逻辑上 + ## 参考 - 口腔固定修复中的美学重建 第1卷 - [临时网页内容](https://www.sohu.com/a/205746991_377312) - [catmull](https://github.com/actionnick/cat-rom-spline) -- [gl-vec2](https://github.com/stackgl/gl-vec2) \ No newline at end of file +- [gl-vec2](https://github.com/stackgl/gl-vec2) +- [ffmpeg.wasm把视频导出的问题](https://ffmpegwasm.netlify.app/) \ No newline at end of file diff --git a/html/pbr3ed.html b/html/pbr3ed.html index d9a96da..c6f5cff 100644 --- a/html/pbr3ed.html +++ b/html/pbr3ed.html @@ -101,6 +101,20 @@
7.5 (0,2)-Sequence Sampler
}

+ +
+
7.8.1 Filter Functions
+

+ box filter, one of the most commonly used filters in graphics, + when filtering and reconstruction aren’t addressed explicitly, the box filter is the de facto result + The box filter equally weights all samples within a square region of the image. Although computationally efficient, it’s just about the worst filter possible. +

+

+ triangle filter, gives slightly better results than the box: the weight falls off linearly from the filter center over the square extent of the filter. +

+

+ Gaussian Filter, Unlike the box and triangle filters, the Gaussian filter gives a reasonably good result in practice. This filter applies a Gaussian bump that is centered at the pixel and radially symmetric around it. The Gaussian’s value at the end of its extent is subtracted from the filter value, in order to make the filter go to 0 at its limit +

diff --git a/index/article.md b/index/article.md index e1c1f56..22fc151 100644 --- a/index/article.md +++ b/index/article.md @@ -48,6 +48,7 @@ - [Mathjax](../articles/mathjax.md) - [农历历法](../articles/2023/chineseCalendar.md) - [回归分析法](../articles/2023/regression.md) +- [协同编辑](../articles/2023/associateEditor.md) ### 图形学 - [裁剪](../cg/culling.md) diff --git a/web/index.md b/web/index.md index 1fb33ee..adec529 100644 --- a/web/index.md +++ b/web/index.md @@ -72,6 +72,16 @@ jszip.loadAsync(new Blob([buffer])).then(zip=>{ }) ``` +#### 放大镜 +- [loupe.js 2.0 allows you to add photorealistic loupes (magnifier) to images on your webpages. The design is changeable by use of an image editing program. It uses unobtrusive javascript to keep your code clean. ](http://www.netzgesta.de/loupe/) + +##### loupe-js + +实现原理很简单, 就是图像因为窗口被压缩,放大镜的作用就是对原图采样截图图片,算好位置,可直接使用css来截图,不像loupe.js这个库使用的是两张图来截取. + +- [An image magnifier for JavaScript](https://github.com/nishanths/loupe-js) + - [demo](https://nishanths.github.io/loupe-js/?shape=rectangle) + ## 参考 - [Draggable objects可拖动的对象网页实现](https://www.redblobgames.com/making-of/draggable/)