首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【CSS】CSS特效集锦,视觉魔法的碰撞与融合(一)

实现思路 画一个竖直的长方形的白色div,设置opcity将其变为半透明 借助transform:skewX将长方形变成等高的平行四边形 白条div绝对定位,外层div相对定位,一开始left...这两个框转动的规则是: 左边的蓝色框先转完0度到180度,这段时间里红色框是不动的 接下来红色框转完180度到360度,这段时间里蓝框则是不动的 (备注:我们约定最上方为0/360度...要实现三角形,首先我们要改变心里对border形状的刻板认知。border其实是一个等腰梯形而不是长方形 ?...当width和height被减小为0,只有border的时候,border就从等腰梯形变成了等腰三角形: ?...在不借助JS的前提下,transition只能来一遍,而animation可以指定次数:1次,2次或无数次(指定infinite表示无限次数),还可以指定方向(altertive,表示播放结束后倒退播放

2K21

使用 SVG 和 JS 创建一个由星形变心形的动画

序言:首先,这是一篇学习 SVG 及 JS 动画不可多得的优秀文章。我非常喜欢 Ana Tudor 写的教程。...通过直角三角形计算正五角星形的内切圆半径,其中斜边是五角星形的外接半径,锐角是五角星形边所对的半径夹角的一半 (live)....现在已经知道了五角星形内的小正五边形的内切圆半径,我们可以通过相似的直角三角形计算外接半径,直角三角形的斜边就是外接半径,圆心角的一半是其中一个锐角,与锐角相邻的中垂线是内切圆半径。...下图中,高亮突出显示的直角三角形就是由正多边形的外接半径、内切圆半径以及边线的一半组成的。...为了做出这种效果,设置一个方向变量 dir,星形变心形的时候值为 1 ,心形变星形的时候值为 -1 。初始值为 -1,好像刚从心形变到星形。

4.6K51
您找到你想要的搜索结果了吗?
是的
没有找到

OpenGLES_理论01_介绍

只提供了一些简单的图元描述如(点,直线和多变形),没有提供描述三维物体模型的高级函数,如(汽车,身体的某些关节等) 理解OpenGL 渲染原理 操作顺序 [名词解释] 顶点数据对象 比如你要绘制一个三角形...,三角形有三个顶点,你要把三个顶点的数据,放到内存中的一个区域中,这个内存对象,就是我们的顶点数据对象 顶点着色器 同俗的讲,就是处理顶点数据的,比如你要让三角形变形或者缩放等操作,你就要在顶点着色器中操作...光栅化 比如你画一个,在光栅化得阶段,就是根据你设置的参数,绘制空心还是实心的阶段,它主要根据点画模式,去将几何数据转换为片段的过程,它处理的操作还有(直线的宽度,大小,着色模型,抗锯齿处理等计算

57910

大学课程 | 计算机图形学,基于MFC和二维变换的画图软件

这里使用了画一个微型填充的方法代替原始像素点。 2.2.2 直线 从直线起的以下图形的绘制均为根据外接矩形绘制内部图形。...2.2.3 等腰和直角三角形 在使用鼠标拉取的矩形中选取点位置并用画线函数连接点实现。三角形包括3个顶点。...2.2.5 圆形和填充 在使用鼠标拉取的矩形中获取了起始点后。将两点间的距离作为要画圆的半径r。...2.4 图形变换扩展 2.4.1 动画设计 通过自定义文本对话框类(Cchoosedig),实现通过输入框输入获取复合图形变换运动时间的功能,基于原有的图形变化函数,增加根据输入时间循环移动以及延时(Sleep...3 程序运行效果 3.1 基本图形实现 设计实现了包含点,直线段,椭圆弧线,矩形,填充矩形,等腰三角形,直角三角形,椭圆,,填充,五边形,五角星,四角星,箭头等多种基础图形,并且实现画图以及选择画笔类型功能

2.2K40

Android OpenGL 做了一个修图(P 图)功能,对标 PS

OpenGL 实现 P 图功能 根据上节讨论的原理,我们把选定位图像区域看成一个圆形,圆形之外的区域不进行偏移形变(不受影响),内的区域的像素则是越靠近圆心移动位移相对越大。...[OpenGL 实现 P 图功能] 如上图所示,BC 表示偏移方向和偏移程度的向量,将内的所有像素按照向量 BC 的方向进行一定程度的偏移,像素偏移的强度,和像素与圆心的距离相关,越靠近圆心强度越大。...[纹理映射1.png] 再回想下纹理贴图(纹理映射)那篇文章,我们只是将图像映射到一个网格(2个三角形组成),这是我们只能对整图做形变,无法做到对如脸部等一小块具体的区域做形变。...生成更多的网格实际上是为了能控制一小块网格区域图像的形变,也就是一定范围内网格区域图像的形变,不对这个范围外的图像产生影响。...,圆形之外的区域不进行偏移形变(不受影响),内的区域的像素则是越靠近圆心移动位移相对越大。

1K60

Matter.js 插件:matter-wrap(世界是的)

作者想通过这个冷笑话告诉大家一件事:地球是的。 在 Matter.js 世界里,默认是没有边界的,也就是说你往一个方向把物体丢出去,超过画布边界后你可能就找不回那个物体了。...如果想让 Matter.js 世界变成“”的,可以使用 matter-wrap 这个插件。 matter-wrap 是什么?...在这个例子中我把三角形丢出边界,它会从边界的另一边出现。这就是 matter-wrap 的功能。 使用 matter-wrap 要使用 matter-wrap 首先就得安装它。...render: { fillStyle: '#060a19' }, } ) ]) Composite.add(engine.world, [ // 三角形...// 将一对球和几个大一点的形状添加到场景中 Composite.add(engine.world, [ stack, Bodies.polygon(200, 460, 3, 60), // 三角形

18520

扒一扒那些叫欧拉的定理们(四)——平面几何欧拉定理美学鉴赏

平面几何欧拉定理 如下图所示,三角形外心与内心的距离d可表示为:d ^ 2 = R(R - 2r),其中R为外接半径,r为内切圆半径。 因为等式左边恒正,因此可以得到欧拉不等式:R > 2r。...如果这是个正三角形,显然距离为0,R = 2r,这一公式动态来看也可以看作是从正三角形变换到普通三角形的过程中,在r不变的情况下,R是如何变大的同时拉开外心和内心距离的。...九点定理 在平面中,对任意三角形,其三边的中点、三高的垂足、顶点到垂心的三条线段的中点,必然共圆,这个被称为九点,又称欧拉、费尔巴哈。 图2 九点定理 ?...欧拉线定理 在平面几何中,欧拉线,或称尤拉线(图中的红线)是指过三角形的垂心(蓝)、外心(绿)、重心(黄)和九点圆心(红点)的一条直线。这四个点共线的结论,我们称为欧拉线定理。...更为神奇的是,其中这个九点的圆心还在重心和外心的中点上。 真是性质多了,啥神奇的巧合都有可能发生啊! 图3 欧拉线定理 ?

82930

画圆、半圆、四分之一三角形

width: 200px; height: 100px; border-radius: 100px 100px 0 0; background: red; } 由此,我们继续深入,如果是四分之一,...我们能否实现,首先的思路就是,我们设置的长和宽都是之前设置的一半,这样做的原因,你可以理解为之前的的四分之一,不就是长和宽各一半么,如果你想要的是左上角为半圆,只要改变左上角的弧度和半径一样,其他三个角为...四分之一的代码: .quarterCircle { width: 100px; height: 100px; border-radius...: 100px 0 0 0; background: red; } 最后一个就是面试经常被问到的题目,画一个三角形,我的思路就是通过transparent,来实现,transparent的解释是透明色...三角形的代码: .triangle { width: 0px; height: 0px; border-bottom: 100px solid

88430

iOS基于GPUImage的图像形变设计(复杂形变部分)

对于用户图像的人脸区域,我们分隔成若干个三角形切片,然后通过调节这些三角形的顶点来实现形变。...具体的做法是: 1) 得到原始三角形顶点位置(原始特征点,图中红色点) 2) 得到需要形变后的三角形顶点位置(形变特征点,图中蓝色点) 3) 通过设置vertices和textureCoordinates...来调整三角形(vertices对应新地形变后特征点,textureCoordinates对应原图的原始特征点) 4) 通过OpenGL绘制相应的三角形,即得到形变后的图像 这里需要单独设置的内容相比简单形变要复杂一些...Part4:基于网格形变的自定义vertices全局图像形变设计 对于Part3中的自定义顶点的方法来实现图像形变而言,需要确定三角形的具体分割,并且仅支持线性的位置调整,对于非线性的位置调整(比如大眼...对于简单的形变,可以通过自定义vertices数组来实现,也可以通过改写FragmentShader来实现;对于复杂的形变,可以同时自定义vertices和textureCoordinates数组来通过自定义贴三角形的方式来实现

2.1K110

一步步实现自定义View之播放暂停控件

状态1是播放状态,有两个小矩形,外面是一个,它需要最终变换成状态3的暂停状态 状态2是两个小矩形变成如图的黑色三角的一个过程 我们可以通过动画来实现它,两个小矩形分别变成三角形的一半 同时再给画布一个...mBarSpace 是两个小矩形之间的距离,mRadius 是状态1中的半径,mWidth 、mWidth 是状态1中大矩形的宽高。...style = Paint.Style.FILL mLeftPath = Path() mRightPath = Path() 同时通过动画使矩形变成三角的参数 mProgress,在onDraw中会用到...rewind() mRadius = mWidth.div(2) //先画一个 canvas!!....mBarWidth + mBarSpace.div(2) 的距离),通过乘以一个从0到1的mProgress的变化即可 同理可得 D到F,B到E,C到E的变化坐标 右侧的矩形也是如此计算,如果是逆时针旋转,三角形是倒过来的

35210

WebGL简易教程(六):第一个三维示例(使用模型视图投影变换)

示例:绘制多个三角形 2.1. Triangle_MVPMatrix.html 2.2. Triangle_MVPMatrix.js 2.2.1. 数据加入Z值 2.2.2....概述 在上一篇教程《WebGL简易教程(五):图形变换(模型、视图、投影变换)》中,详细讲解了OpenGL\WebGL关于绘制场景的模型变换、视图变换以及投影变换的过程。...不过那篇教程是纯理论知识,这里就具体结合一个实际的例子,进一步理解WebGL中是如何通过图形变换让一个真正的三维场景显示出来。 2....数据加入Z值 之前绘制的三角形,只有X坐标和Y坐标,Z值坐标自动补足为默认为0的。在这里会绘制了3个三角形,每个三角形的深度不同。...MVP矩阵设置 在上一篇教程中提到过,WebGL的任何图形变换过程影响的都是物体的顶点,模型变换、视图变换、投影变换都是在顶点着色器中实现的。

62320

创建canvas设置canvas尺寸绘制图形Canvas库

用路径可以绘制各种自定义的图形,比如三角形js: // 开始绘制路径 ctx.beginPath(); // 移动至起点 ctx.moveTo(200, 20); // 绘制线段 ctx.lineTo...我们也可以将闭合的路径填充颜色,以实现实心三角形的绘制: js: ctx.beginPath(); ctx.moveTo(200, 20); ctx.lineTo(300, 20); ctx.lineTo...例如绘制,可以写成: js: ctx.beginPath(); ctx.arc(300, 300, 60, 0, Math.PI * 2, true); ctx.stroke(); 效果: image.png...: js: /** * 定义 */ const circle = { x: 30, // 水平方向的坐标 y: 300, // 垂直方向的坐标 size: 30, // 的半径...: js: /** * 定义 */ const circle = { x: 300, // 水平方向的坐标 y: 300, // 垂直方向的坐标 size: 30, // 的半径

4.4K10

Three.js教程(6):几何体

先说一个事实,在WebGL中只能绘制3种东西,分别是点、线和三角形。什么?我们之前做的方块和球体,明明就不是三角形呢?其实他们确实是由三角形组成的。...多个小的三角形就是可以组成包括球体以内的几乎任何几何体。我们先从简单的例子开始今天的课程吧。...此时的效果如下,我们可以很清楚的看到平地是由三角形构成的。 ?...RingGeometry的构造方法有6个参数,分别是innerRadius,表示内圆半径;outerRadius,表示外半径;thetaSegments,表示分成几个三角形,默认是8个,最小3个,与上面是一样的...当然Three.js不仅仅可以使用给出的几何体,甚至还可以自定义几何体,最重要的是还可以导入其他建模软件做出来的模型,这一点是非常厉害的。

1.7K61

JavaScript 编程精解 中文第三版 十七、在画布上绘图

arc方法是一种沿着的边缘绘制曲线的方法。 它需要弧的中心的一对坐标,半径,然后是起始和终止角度。 我们可以使用最后两个参数画出部分。角度是通过弧度来测量的,而不是度数。...你可以以 0 起始并以一个比2π大的数值(比如 7)作为终止值,画出一个完整的。...第一次调用arc)的右侧到四分之一(第二次调用arc)的左侧的直线。...对三角形编号来说明每一步。如果我们在x坐标为正值的位置绘制一个三角形,默认情况下它会出现在图中三角形 1 的位置。调用filpHorizontally首先做一个向右的平移,得到三角形 2。...图形变换允许你向多个方向绘制图片。2D 绘制上下文拥有一个当前的可以通过translate、scale与rotate进行变换。这些会影响所有的后续的绘制操作。

3.7K30

fabric.js和高级画板

高级画板功能介绍 全局绘制颜色选择 护眼模式、网格模式切换 自由绘制 画箭头 画直线 画虚线 画圆/椭圆/矩形/直角三角形/普通三角形/等边三角形 文字输入 图片展示及相关移动、缩放等操作 删除功能 (...fabric.js介绍 fabric.js是什么 fabric.js是可以简化canvas编写的js库,提供canvas缺少的对象模型,包含动画、数据序列号和反序列化的等高级功能的js库,开源项目,在GitHub...fabric.js优缺点 优点:fabric提供超好的画布能力....缺点:api超级烂,没有相应的demo代码,上手难度较大. fabric.js使用笔记 对象 fabric.Circle fabric.Ellipse 椭圆 fabric.Line 直线 fabric.Polygon...fabric.Polyline fabric.Rect 矩形 fabric.Triangle 三角形 方法 add(object) 添加 insertAt(object,index) 添加 remove

4.4K30
领券