图形学知识点总结-程序员宅基地

技术标签: 图形学  知识点总结  

计算机图形学基本概念,应用,前沿技术。

 

1. ISO 图形学的定义:应用计算机技术进行图形 的生成、处理和输出。

研究对象 —— 图形。

2.图形:是从客观世界物体中抽象出来的带有颜色及形状信息的图和形。

图形的构成要素:

几何要素:点、线、面、体等。

非几何要素:描述对象的颜色、材质等。

图形的表示方法:点阵法:枚举出图形中所有点;参数法:由图形的形状参数(方程表达式的系数,线段端点坐标)和属性参数(颜色)表示  

图形与图像

图像image:由像素点组合而成。一般用二维矩阵表示,矩阵的每一点称为一个像素。

特点:颜色丰富。所占的体积很大。放大图像,点数不变。

图形:按照数学公式表达的线条构成。含有几何属性。可能用参数表示,比如线段用两个点和中间的一些参数。

特点:占空间小,放大图形,线条依然可以保持良好的光滑性。

 

4、计算机图形学基本研究内容

 

1、图形系统(硬、软、标准化)

2、基本图形生成 如何显示点、线段、多边形及圆等几何图形

3、图形的处理 几何变换(图形动起来);投影变换(如何显示三维 图形);真实感图形(光照、阴影。。。)

4、物体造型 实体表示;曲线曲面;真实感

 

 

 

5 研究热点

1计算几何 :几何形体在计算机中的表示

2 DIP数字图像处理:如何对一幅连续图像采样、量化变成数字图像,对数字图像做一些处理,比如图像去噪、边缘处理。

3 模式识别:从图像中抽取一些特征和信息,从而把图像分成 预定的类别,比如指纹识别

4 计算机视觉:由计算机来代替大脑完成图像处理和解释。分析图像,提取特征。然后分类。比如机器人的视觉系统。

 

6 应用

GUI图形用户界面、计算机动画、虚拟现实、科学可视化

 

虚拟现实:计算机技术来生成一个逼真的三维感官世界。让用户可以身临其境得,利用头盔、数据手套等和这个虚拟世界进行交互

7 图形学的研究热点

一、造型技术 (现实中客观存在的物体建模)

二、真实感图形绘制技术:光照模型,阴影,映射,纹理算法

三、人机交互技术 :机器可以更高的理解

四、与计算机网络技术的紧密结合:远程医疗

 

基本概念

(1) 像素(Pixel: Picture Cell):构成屏幕(图像)的最小元素

(2) 分辨率(Resolution) CRT在水平或竖直方向单位长度上能识别的最大像素个数

(3) 窗口:需要显示的场景区域

(4) 视口:显示设备行用来显示图形的区域.从屏幕的不同位置观察场景的不同部分。

(5) 裁剪(Clip):从场景中确定位于窗口内的图形

第二章

(硬件和软件,其中硬件:)

硬件组成:

n 帧缓冲存储器:存储屏幕上像素的颜色值

n 视频控制器:将帧缓存里得数据扫描生成图形,射到屏幕里

n 显示处理器:处理图形,比如几何变换、剪裁

n 显示器:CRT、液晶

有的还有GPU: 图形处理器。做图像和图形相关运算工作的微处理器减轻了CPU的负担

 

显示器:

CRT:电子枪、聚焦系统、 加速电极、偏转系统、 荧光屏

液晶显示器:

 

https://www.docin.com/p-1520255600.html

 

图形的扫描转换

1. 随机扫描(random scan) 电子束可以任意移动。画线设备

2. 光栅扫描(raster scan) 电子束按固定扫描线和次序进行。画点设备

-------------------------------------------------三------------------------------------------

图形的显示过程:

图形显示过程:原始数据进行计算,放到帧缓存里,(形成点阵数据),再通过视频控制器扫描生成图形,射到屏幕里。

 

生成线段方法:直线方程法、DDA算法(y相应的增加)、中点算法(判断+0.5在直线上还是下)

 

生成圆的方法(由八分之一圆弧上的点确定整个圆得点。)

列出圆得表达式,判断每个点到圆心得距离小于R还是等于R

等面积正多边形迫近法

 

多边形表示方法:顶点表示,点阵表示(会失去很多重要的几何信息,占地)

 

------------------------------------上色-变换-----------------------------------------------

扫描转换与区域填充(填充颜色的方法)

扫描转换:顶点表示到点阵表示的转换,给多边形包围的区域着色。(区域表示方法变了)

填充(种子填充):将指定的颜色从种子点开始扩展到整个区域。递归的方法实现(种子点的上下左右四个像素递归判断)(区域表示方法没变)

 

扫描转换的三种方法:

1. 确定哪些像素位于填充图元的内部 :逐点(射线法)判断,或者扫描线(一条条线进行扫描,计算多边形的相交区间) 或者边缘填充(对于每一条扫描线和每条多边形边的交点 (x1,y1) ,将该扫描线上交点右方的所有像素取补)

2. 用指定颜色绘制这些像素

 

逐点判断多边形凹凸:图形在边的延长线同一侧:凸的。或者用向量积的方法

判断点在多边形的内外:

u 射线法 :从待判别点 发出射线与多边形交点个数,偶数:外。奇数:内

u 累计角度法:

u 编码法*

 

扫描转换多边形

1. 逐点判断:


2.    扫描线:(x扫描线)

计算扫描线与多边形的相交区间,交点排序,两两配对,然后用要求的颜色显示这些像素。

问题:交点配对时顶点不好选择。顶点部分难判断:

解决:若共享顶点的两条边分别落在扫描线的两边,交点算一个;若在同一边,交点算0个或两个。

3.    边缘填充:(以边为中心的边缘填充算法) M为填充黑色 第一步:将绘图窗口的背景色置为 M拔 ; 第二步:对多边形的每一条非水平边做:从该边上的每个像 素开始向右求余

适合用于具有帧缓存的图形系统。算法简单,但是如果图像复杂,每次像素多次访问,输入输出的量比扫描线算法大。

 

扫描转换扇形区域:

       与多边形类似:对每条扫描线,首先计算与扇形区域边 界的交点,交点经排序后,再用指定颜色绘制绘制配对 交点间的像素。

区域填充(种子填充)

将指定的颜色从种子点开始扩展到整个区域

缺点:有些像素需要重复判断,降低算法效率 n 栈结构占空间 n 递归执行,算法简单,但效率不高

 

多边形扫描转换与区域填充方法比较

1. 基本思想不同 u 前者:顶点表示转换成点阵表示 u 后者:只改变区域内填充颜色,没有改变表示方法

2. 对边界的要求不同 u 前者:扫描线与多边形边界交点个数为偶数 u 后者:区域封闭,防止递归填充跨界

3. 基本的条件不同 u 前者:从边界顶点信息出发 u 后者:从区域内种子点出发

 

用图像填充区域:

1. 均匀着色方法:将图元内部像素置成同一颜色

2. 位图不透明:若像素对应的位图单元为1,则以前景色显示该 像素;若为0,则以背景色显示该像素;

3. 位图透明:若像素对应的位图单元为1,则以前景色显示该像 素;若为0,则不做任何处理。

4. 像素图填充:以像素对应的像素图单元的颜色值显示该像素

方法1:建立整个绘图空间与图像空间的1-1映射

方法2:建立区域局部坐标空间与图像空间的1-1映射

 

字符的表示与输出:

点阵字体: 每一个字符用位图表示。这个位是1,表示这个笔画经过此处,0表示不经过此处

矢量字体:笔画用曲线(参数)表示

 

 

二维光栅图形的走样与反走样

走样的现象和原因:

走样定义:用离散的像素表示连续的图形而引起的失真

光栅图像走样现象:

1. 阶梯(锯齿)状边界  -> 像素间距大

2. 图形细节失真 -> 比较细的矩阵会消失:因为像素是最小单位,没有更小的了

3. 狭小图形遗失:动画序列中时隐时现,产生闪烁 -> 图形比较小,运动的时候没有覆盖像素的中心,所以不显示。

 

反走样的方法:antialiasing

定义:在图形显示过程中,用于减少或消除走样(混淆)现象的方法

方法: 1. 提高分辨率方法 2. 非加权区域采样 3. 加权区域采样

 

  1. 提高分辨率:简单代价大。扫描同样大小的图元时间长,占用帧缓存容量空间大。
  2. 非加权区域采样(对于“不覆盖像素点的中点就不显示”这个假设进行调整):

 

根据覆盖像素的面积设置直线段上像素灰度,覆盖的少,亮度低

       步骤: ①将直线段看作具有一定宽度的狭长矩形;

②当直线段与某像素有交时,求出两者相交区域的面积;

③根据相交区域的面积,确定该像素的灰度(亮度、颜色)值

 

计算盖像素的面积(相交面积)的方法:

1 用斜率和长度算相交面积。 2. 像素分割成 n 个更小的子像素,看线段内有多少个子像素中心点,记为k,k/n就是相交面积。

 

  1. 加权区域采样:考虑位置,离像素中心近的子像素权值大。

计算方法:离散的方法:

 

 

计算所有中心落在直线段内的子像素对原像素A亮度贡献之和(高斯函数表示) 。该值乘以像素A的最大灰度(颜色)值即为像素A的显示灰度(颜色)值

 

图形的几何变换:(平移、旋转、放缩)

用齐次坐标定义:x维度变成x+1维度。比如点(x,y) 的标准齐次坐标为 (x,y,1). 齐次坐标的目的:使得这 3 种基本变换能很容易地结合在一起,形成各种复杂的组合变换。

1 用齐次坐标定义

2 然后乘相应的矩阵。

 

 

第三章二维图形的基本操作和图形处理算法

 

几何变换:

基本操作:图形的平移、缩放、旋转、镜像、错切

二维图形的裁剪,投影,多边形填充以及二维图形的布尔运算(并、交、差)


齐次:每一维次数都是1,如(x,y,z);(x,y,1)就不是。

齐次坐标的原因,齐次的优点:

几何变换时 运算矩阵的 形式统一(因此便于合成,连续变换时可以先得到变换矩阵;便于硬件实现,只用矩阵乘法)

 

齐次坐标定义;(Xh, Yh ,h)  Xh = hx, Yh = hy, h ¹ 0

 

 

平移和旋转变换具有可加性,放缩变换具有可乘性

  1. 逆变换:

 

 

复合变换:先计算变换矩阵,再计算坐标。先作用的放在连乘的右端,后作用的放在连 乘的左端。

镜像(对称reflection):

 

错切(shear), 仿射变换(affine transformation)

 

若三维几何变换剪裁:则(x,y,z)-> (x,y,z,h) 用到右手坐标系

 

三维几何变换的一般形式:

(1)前三行和前三列对应旋转和放缩变换 (2)第四列的前三个元素对应平移变换 (3)第四行前三个元素对应投影变换

 

投影:降维度显示
布尔运算:

 

二维观察

 

两口定义:

裁剪窗口(Clipping Window) :需要显示的场景区域。用户坐标系定义

视口(Viewport):指显示设备上用来显示图形的区域。屏幕坐标系定义

二者作用:

改变窗口:影响显示对象的多少

改变视口:改变视口尺寸实现图形对象的缩放。改变视口位置实现在屏幕不同位置看到场景。

 

二维观察变换:窗口到视区的变换。

 

 

 

剪裁(clip):(第7个)

  1. 先扫描转换后裁剪:设备坐标系中,变成点阵表示:然后判断像素是否落在视区里。算法简单,速度慢
  2. 裁剪后扫描转换:世界坐标系,对参数表示图形剪裁。节约计算时间,复杂。

 

裁剪的基础:图元关于窗口内外关系的判别、图元与窗口的求交。

A 点裁剪:点 (x, y) 在窗口内的充分必要条件是, X 属于 XMIN,XMAX , Y 同理

B 直线裁剪

二.点剪裁

三.直线求交点:

法1. 直接求

 

判断端点和窗口位置关系

(待裁剪线段和窗口的关系若为线段完全可见、显然不可见,可直接处理;若线段至少有一端点在窗口之外,但非:不可见,需求交。)

显然不可见:求线段与窗口边延长线的交点,这个交点将线段分为两段,其中一段显然不可见,丢弃

判断显然可见、显然不可见:

 

 

 

法2.编码(Cohen-Sutherland )算法: 通过延长四个边,分成9块,然后给每块编码,用来判断线段是否显然可不可见、然后求交点,再判断,这么迭代。

 

 

法3.中心分割法:

  1. 从P0点出发找出距P0最近的可见点A
  2. 从P1点出发找出距P1最近的可见点B
  3. AB为可见部分

法4.Liang-Barsky裁剪算法: 将二维裁剪化为一维裁剪,向X(或Y)方向投影以决定可见线段

 

C 多边形裁剪

不能用线段剪裁。Why? : 剪裁后,多边形的边界不再封闭,需要用窗口边界来封闭。

Sutherland-Hodgman 算法:SH算法、逐边剪裁。

基本思想:流水线的方式,每次用窗口的一条边裁剪凸多边形。

步骤:将顶点序列P1P2…Pn作为输入

            依次对窗口的每个边做下列处理:

                            输入顶点序列、依次对顶点序列中相邻顶点构成的边PiPi+1进行剪裁处理、输出剪裁后的顶点序列。

 

 

D 字符裁剪

A 以串为单位的裁剪:把整个字符串作为整体来处理。或全部显示,或全不显示。

B 字符裁剪:每 1 个字符堪称一个矩形的字符框,这个框完全落在窗口之内时显示

C 矢量裁剪:把每个字符都看作是一些短直线 ( 笔划 ) 的组合,每一笔划都进行直线的裁剪。

 

窗口到视区的变换:

1 平移:在世界坐标系中,平移窗口使(xmin, ymin)移动至坐标原点,变换为T (-xmin, -ymin)

2 放缩:使窗口的大小与视区相等,变换为S(Eu/Ex, Ev/Ey)

3 在设备坐标系中,平移使窗口与视区重合

 

三维观察

1. 投影(8章)

2. 三维形体的表示(11章)

3. 消除隐藏面与隐藏线(9章)

4. 建立光照明模型、真实感图形绘制方法(10章)

 

 

  • 在二维屏幕上如何显示三维图形

两大方法:u 投影(降维)  u 三维显示设备(还没普及

         三维成像基本步骤: 

  1. 选定投影projection类型 —— 平行、透视
    1. 平行:投影中心与投影平面之间的距离为无限(投影线是平行的)
      1. 正投影、侧投影(投影线不垂直于投影平面)
    2. 透视:投影中心与投影平面之间的距离为有限

灭点vanishing point:不平行于投影平面的平行线,经过透视投影之后收敛 于一点,称为灭点。

主灭点:平行于坐标轴的平行线的灭点。 n 一点透视:1个灭点 n 两点透视:2个灭点 n 三点透视:3个灭点

                            视见体 : 视见体是三维裁剪窗口,确定可见空间

                           

  1. 设置投影参数—— 拍摄方向、距离等

(3)三维裁剪 ——取景

(4)投影和显示——成像

流程:

二、如何表示三维物体?

        

 

模型变换 Modeling Transformation)

每个物体有自己的坐标系。有可能有多个物体,要从模型坐标系变成世界坐标系。

观察变换: 从世界坐标系到观察坐标系的变换

 

先投影后裁剪:

先剪裁后投影:

三维裁剪:
         涉及到多边形裁剪:逐面裁剪算法

·关于直线

  1. Cohen_Sutherland编码算法,从9块推广到27块
  2. Linang_Barskey算法

·关于面的:

  1. 多边形裁剪

 

三、如何反映遮挡关系?

消除隐藏面与隐藏线

  1. 消隐定义:消除隐藏线和隐藏面,保持遮挡关系
  2. 消隐分类:消除隐藏面:消除不可见面;消除隐藏线:消除不可见线
  3. 算法:    
    1. 面消隐分类:

1. 投影窗口内的像素为处理单元:对窗口内的每一个像素遍历,确定距视点最近的物体,以该物体表面的颜色来显示像素

2. 场景中的物体为处理单元:场景中的每一个物体,将其与场景中的其它物体比较,确定其表面的可见部分并显示。

       b) 

4.      提高消隐算法效率:

一、利用连贯性

二、透视投影转换为平行投影

三、包围盒技术:包围一个复杂性体的简单形体

四、背面剔除

五、空间分割技术

六、物体的分层表示

         5.      画家算法:先画远景后画近景

         6.      Z 缓冲器算法

 

6  Z-Buffer算法(深度缓冲 depth-buffer)

一种隐藏面消除算法

  1. 组成:
    1. n 帧缓冲器 -- 保存各像素颜色值
    2. n Z 缓冲器 -- 保存各像素处物体深度值

(Z 缓冲器中的单元与帧缓冲器中的单元一一对应)

  1. 算法

先将 Z 缓冲器中各单元的初始化为最小值

多边形投影时,当要改变某个像素的颜色值时,首先检查当前多边形的深度值是否大于该像素原来的深度值

A:如果大于,说明当前多边形更靠近观察点, 用它的颜色替换像素原来的颜色;并保存深度值

B:否则说明在此像素处,当前多边形被遮挡了,是不可见的,因此颜色值不变。

 

  1. 优点:稳定,硬件容易实现;缺点:需要额外z buffer存深度值。每个像素都计算深度,计算量大。

 

·扫描线z buffer:

解决的问题:Z 缓冲器算法中所需要的 Z 缓冲器容量较大

将整个绘图区域分割成若干个小区域,这样 Z 缓冲器只用存一个区域中的像素而不是所有像素。把小区域取成扫描线。

步骤:找出与当前扫描线相关的多边形,以及每个多边形与该扫描线的相交线段上的各像素,计算深度,并与 Z-buffer中的值比较,找出各像素处可见平面,然后把颜色写到帧缓存。

 

、如何产生真实感图形

重点掌握光照方程、基本纹理映射及多边形绘制

 

n 何谓真实感图形

真实感图形绘制主要内容: 光照、纹理、阴影

10.1 简单光照模型

建立数学模型模拟三种不同类型的光:环境光、漫反射光、镜面反射光

1.      环境光(Ambient light) 在物体和周围环境之间多次反射后,最终达到平衡时的一 种光,又称为背景光。

光强(度):分布均匀Ia

反射系数:表面性质有关K

Ie =Ka* Ia

         2.      漫反射(Diffuse Reflection)(Lambert

        

         粗糙不平引起的,均匀地向各个方向传播,与视点无关。分布均匀。

 

3. 镜面反射光和冯(Phong)反射模型

高光(high light):光滑物体表面在点光源的照射下形成一 块特别亮的区域

镜面反射(Specular Reflection) n 物体表面对入射光的反射

 

包括反射系数、夹角、镜面高光系数

         局部光照明模型:仅处理光源直接照射物体表面的光照明模型。

 

10.2 多边形绘制方法

颜色插值和法向插值

 

多边形上各点处的颜色一样:入射光矢量不一样,颜色也不同

         绘制方法:

  1. 均匀着色(Flat Shading)

                                     利用光照明方程计算出它的颜色。适合光源或视点在无穷远

                                     一个多边形只用计算一次光照模型。

  1. 光滑着色(Smooth Shading)
  1. 采用插值方法
    1. Gouraud(高洛德 )方法 :用多边形顶点的颜色进行插值生成中间点的颜色

(1)计算多边形的单位法向量

(2)计算多边形顶点的单位法向量(共享顶点的多边形法 向量的平均值)

(3)利用光照明方程计算顶点颜色

(4)对多边形顶点颜色进行双线性插值,获得多边形内部各点的颜色

 

双线性插值:在两个方向分别进行一次线性插值;根据待插值周围四个近邻点的位置估测待插值的位置。

 

    1. Phone(冯)方法 :对顶点的法向量进行插值计算出中间点的法向量

             (1)计算多边形单位法向量

(2)计算多边形顶点单位法向量 (以上两步同Gouraud着色方法)

(3)对多边形顶点法向量进行双线性插值,获得内部各点的法向量

(4)利用光照明方程计算多边形内部各点颜色

均匀着色、Gouraud 和Phong方法比较

(1)均匀着色(Flat)块状现象明显,计算开销小

(2) Gouraud方法光变化过渡不连续,计算开销较大

(3)Phong方法光变化过渡连续,计算开销大

 

10.3 纹理texture映射

纹理:是物体表面的细小结构,它可以是光滑表面的花纹、图案,即颜色纹理(2D)或三维结构 或粗糙表面(几何纹理)

纹理来源 :数字图像,用二维数组表示 :

数学公式定义得纹理函数

纹理映射(Texture Mapping):将一块纹理图案映射到物体表面上,产生物体表面的细节

         1.      确定纹理与物体表面的对应关系

         2.      用表面上点对应的纹素值代替该点的颜色值(或漫反射系数)

 

圆柱映射、球的映射、圆环映射等映射关系。

 

 

 

10.4 阴影shadow

                   与消隐算法本质上一致

光源对位于阴影中的点的亮度(颜色)没有贡献,修改光照模型

         基于Z缓冲消隐的实现算法

步骤:

(1)将图形变换到以光源为原点的 坐标系,利用Z缓冲器消隐算法 按光线方向对图形消隐,把距 光源最近的物体表面上点的深度值保存在Z缓冲器中

(2)利用Z缓冲器消隐算法按视线方向对图形消隐,将得到的每 个可见点变换到第 i 个光源的坐标系中,若它在光源坐标系中 的深度值小于阴影缓冲器中相应单元的值,则该可见点位于阴 影中(Si =0),否则( Si =1),再用光照模型计算颜色

算法简单,但存储量大(每个光源需要1个Z缓冲器)

 

n 人们观察现实世界产生的真实感来源于

纹理、光照、阴影、遮挡

n 解决方法----建立光照明模型、研发真实感图形绘制方法

 

 

曲线与曲面

曲线的表示方法 ;掌握Bezier和 B样条曲线

 

曲线的表示形式:非参数表示和参数表示

  1. 非参数表示(显示、隐式)
  2. 参数表示(参数方程、参数表示的矢量表示)弧长参数

 

  • 参数表示的优点 (表示最简单 n 理论和应用最成熟)

n 容易确定曲线边界。由参数区间确定

n 表示形式不变性。不依赖于坐标系的选取

n 表示能力强。利于控制点来控制曲线形状,如后面将要学到的Bezier曲线

用到的数学: 切矢量、法矢量(与切矢量垂直)、曲率(曲线的弯曲程度

三次Hermite曲线

Bezier曲线 贝塞尔

 

Bezier曲面

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40827685/article/details/109613911

智能推荐

【编译原理】语法分析_编译器常用的语法分析方法有哪两种-程序员宅基地

文章浏览阅读1.5k次。编译器常用的语法分析方法有自上而下和自下而上两种。正如它们的名字所示,自上而下分析器按从根结点到叶结点的次序来建立分析树,而自下而上分析器恰好相反。它们的共同点是从左向右地扫描输入,每次一个符号。最有效的自上而下和自下而上的分析法都只能处理上下文无关文法的子类。这些子类足以描述编程语言的大多数构造和它们的语法特征,其中L文法的分析器通常用手工实现,而LR文法的分析器通常利用自动工具构造。终结符: 即记号名。非终结符: 非终结符用来帮助定义由文法决定的语言,一个非终结符定义终结符串的一个集合。非终结符还在语言_编译器常用的语法分析方法有哪两种

数列分块入门(套题)(loj6277,loj6278,loj6279,loj6280,loj6281,loj6282,loj6283,loj6284,loj6285)_loj79-程序员宅基地

文章浏览阅读230次。前言zjoi考差了,码一些分块题缓解一下心情壹数列分块入门 1[loj6277]题目大意:区间加,单点查直接分块,区间加时完全覆盖的块打tag,边界块暴力重构块大小设为n\sqrt nn​,复杂度O(nn)\mathcal O(n\sqrt n)O(nn​)code#include<cstdio>#include<cctype>#include<c..._loj79

杂说CSS_ifc可以向下兼容吗-程序员宅基地

文章浏览阅读89次。1、CSS初始化为什么初始化CSS呢?因为浏览器的兼容问题,不同浏览器对标签的默认值是不同的,如果没有初始化CSS,往往会导致页面在不同浏览器页面在不同浏览器之间出现差异并且,多数浏览器会默认给初始页面添加上外边距简单的初始化页面* { padding: 0; margin: 0; box-sizing: border-box;}2、display 都有哪些值?block、inline、inline-block、list-item、table 、 inherit 和 nonebl_ifc可以向下兼容吗

python3 torndb:CONVERSIONS[field_type] = [(FLAG.BINARY, str)] + CONVERSIONS[f-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏6次。问题:把一个项目从python2 升级到python3时,发现torndb不能用了。提示如下错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/micstu/.local/lib/python3.5/site-packages/torndb...._conversions[field_type] = [(flag.binary, str)] + conversions[field_type] typ

uni-app技术分享| uni-app转小程序_实时音视频_uni小程序视频倍速播放-程序员宅基地

文章浏览阅读3.1k次。uniapp转小程序_实时音视频微信小程序 实现实时音视频与 uniapp 转码成微信小程序 实现实时音视频两者是一样的,区别仅仅是一个是原生小程序一个是 uniapp 转码成小程序本文使用uniapp转码成小程序实现音视频通话前提确保微信开发平台 =》开发 =》开发管理 =》接口设置 的 实时播放音视频流与实时录制音视频流开启[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vvSzutl4-1649304145472)(./3.jpg)]线上版本配置 an_uni小程序视频倍速播放

随便推点

Flutter学习笔记&学习资料推荐_pan.flutter实战第二版-程序员宅基地

文章浏览阅读3.2k次,点赞10次,收藏39次。对Flutter的学习已经有一段时间了,这里做一下总结记录吧,可能主要是学习资料的总结,还有一些杂七杂八的学习笔记。 Flutter 初体验 先说说对Flutter的感受吧,总的来说上手还是比较容易的,因为他的思想理念跟React十分相似,都是通过状态管理控制UI界面的更新,甚至连setState的方法名都是一样的,如果你是学习过类似React的框架的话,将很容易理解,基本可以直接开撸。但是它有好的地方,也有不好的地方。 好的地方:一个是它的reload热加载到手机,这样写代码调试的时候不用每次运行._pan.flutter实战第二版

安卓开发学习——第四天_安卓开发学习csdn-程序员宅基地

文章浏览阅读864次。3. 常用的UI布局1). LinearLayout: 线性布局 用来控制其子View以水平或垂直方式展开显示 2). RelativeLayout: 相对布局 用来控制其子View以相对定位的方式进行布局显示 3). FrameLayout: 帧布局 每一个子View都代表一个画面, 后面出现的会覆盖前面的画面 通过子View的androi_安卓开发学习csdn

linux 6下面用udev配置asm磁盘的注意事项_ls: cannot access /dev/asm*: no such file or direc-程序员宅基地

文章浏览阅读2k次。实验环境:虚拟机:virtualbox 5.0.24 r108355操作系统:rhel-server-6.5-x86_64看了刘相兵大大的:在Linux 6上使用UDEV解决RAC ASM存储设备名问题自己操作了一把,先前在linux5 的时候我是用asmlib来绑定ASM的,参考三思笔记,我在创建虚拟硬盘的时候用的SCSI格式的硬盘,在linux 5的时候_ls: cannot access /dev/asm*: no such file or directory

linux下Qt打包_如何在linux系统下把qt打包视频-程序员宅基地

文章浏览阅读1.1k次。1.新建Demo文件件,并将二进制可执行文件MiMouse放置在目录内2.在Demo文件夹下新建copy.sh文件touch copy.shcopy.sh文件内容如下#!/bin/bashLibDir=$PWD"/lib" #获取lib目录路径Target=$1lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))$(mkdir $LibDir) #创建lib目录for Variab_如何在linux系统下把qt打包视频

计算机网络的组成及通信子网和资源子网的划分_计算机网络可以分为通信子网和资源子网-程序员宅基地

文章浏览阅读1k次。网络操作系统:是网络软件的重要组成部分,是进行网络系统管理和通信控制的所有软件的集合,负责整个网络软件,硬件资源的管理以及网络通信和任务的调度,并提供用户与网络之间的接口,常用的网络操作系统有:Windows,Linux,Unix,netwear等。网络接口卡:简称网卡,又称为网络适配器,主要负责主机与网络之间的信息传输控制,功能是线路传输控制,如堵塞,冲突等,差错检测与恢复,代码转换以及数据帧的装配与拆装等。传输介质:用于将网络中各种设备连接起来,是数据传输的物理通道,有有线传输介质和无线传输介质之分。_计算机网络可以分为通信子网和资源子网

STM32-深入理解GPIO的8种工作模式_otg_fs_gccfg-程序员宅基地

文章浏览阅读4.6k次,点赞14次,收藏104次。对STM32中GPIO的8种工作模式做一个详细的说明_otg_fs_gccfg

推荐文章

热门文章

相关标签