`
yiminghe
  • 浏览: 1460167 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

圆形绘制

    博客分类:
  • ui
阅读更多

根据 css3 中的 border-radius 属性,将 border-radius 的值设置为和元素的高宽一样,那么这个元素就渲染成了圆形。目前 ie9 以及各大标准浏览器都支持,但是用户份额最多的 ie6,7,8 并不支持,不过 ie6,7,8 支持微软提出的 vml 标准 ( wiki , msdn ),而从 ie9 开始放弃了 vml,转而支持 w3c 推荐的同类型的矢量语言 svg


demo :

 

那么对于 ie6,7,8 就可以使用 vml 代替 css3 对应属性来绘制圆形:


demo : using vml to draw round


实现注意:


1.vml 支持从 ie6 到 ie8,越来越弱,问题越来越多,性能越来越差,特别是 ie8 在兼容性上和前两个版本有些区别


2.roundrect 的 arcsize 对应 css 的 border-radius 属性,不需要边框可设置 stroked(规范为stroke,规范与实现不符) 为 false ,但是当设置透明度时边框会有黑色线条残余( ie9 的兼容模式已修复)。透明度要设置 vml 元素的style,而不是设置 opacity 属性(规范与实现不符)。


3.添加 vml 元素后注意 将容器元素的背景色设置为透明,防止干扰绘制的圆形区域。


4.容器元素要设置定位,并且绝对定位的 vml 元素的 z-index 要设置为 -1,使得 vml 元素位于容器其他子元素的下方,达到等同于设置元素背景色的效果。

 

update : 发现一个更复杂全面的库 DD_roundies


重属巧合~~


PS :  渲染延迟


最后一个添加到dom的 vml 元素总是会被延迟渲染,所以如果要求所有vml元素一起渲染显示的话,需要在最后一个vml元素后再次添加一个元素并设置为隐藏。

 

分享到:
评论

相关推荐

    Python实现的圆形绘制(画圆)示例

    本文实例讲述了Python实现的圆形绘制。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 import numpy as np import matplotlib.pyplot as plt # ========================================== ...

    vue 高德地图 绘制工具的封装实现绘制 矩形 、圆形、多边形、点标记、折线 覆盖物 并编辑

    1:实现对圆形、多边形、点标记、折线 等的绘制; 2:支持单个绘制 或者 多个绘制的选择; 3:支持对绘制后的图形进行删除; 4:支持对绘制后的图形进行编辑,调整; 5:支持根据图形数据显示到地图上,进行后续操作...

    使用OpenGL绘制圆形cpp文件

    总之,OpenGL提供了灵活性,允许开发者选择适合特定应用场景的圆形绘制方法。方程法适用于精度要求高的情况,而中点Bresenham法则在性能和效率上有优势。通过深入理解这两种方法,你可以更好地利用OpenGL来创建复杂...

    课时17:常用曲线绘制工具讲解-圆形绘制.mp4

    视频教程

    Halcon转C#代码绘制圆形

    本教程将重点讲解如何在C#中实现Halcon的圆形绘制功能,从而在匹配助手或者自定义的应用程序中复用Halcon的图像处理能力。 首先,我们需要了解Halcon中绘制圆形的基本概念。在Halcon中,绘制圆形通常涉及到创建一个...

    Filament绘制圆形(更新版)

    在资源包中,"circle"可能是包含了实现圆形绘制的源代码文件,可能包含C++或GLSL(OpenGL着色语言)代码。这些文件可能定义了用于构建圆形的几何数据、顶点缓冲对象(Vertex Buffer Objects)、索引缓冲对象(Index ...

    Filament绘制圆形

    值得注意的是,有一个名为`circle`的文件或目录,很可能包含了实现圆形绘制的具体代码。 要深入学习这个话题,你需要了解基本的3D图形学概念,如向量、矩阵、顶点着色器和片段着色器,以及Filament的基本用法。你...

    可直接运行 MATLAB绘制圆形并填充斜线 绘制的图片自动保存到本地 源程序代码.rar

    2. **圆形绘制**:在MATLAB中,可以使用`fill`函数结合极坐标来绘制圆形。例如,`fill(theta,rho,'color')`,其中`theta`是角度数组,`rho`是对应角度下的半径,'color'是填充颜色。`theta`通常从0到2π,表示一个...

    用VC++绘制等边三角形的实例方法

    用VC++绘制等边三角形的实例方法 switch(message) { case WM_PAINT: hdc=::BeginPaint(hwnd,&ps); hP=(HPEN)CreatePen(PS_DASH,3,RGB(0,255,0)); hB=(HBRUSH)CreateHatchBrush(HS_CROSS,RGB(255,0,0));...

    Android 绘制圆形头像

    在Android开发过程中,绘制圆形头像是一个非常实用且常见的需求。圆形头像不仅美观,还能在视觉上给人带来良好的用户体验。接下来,我们将详细介绍如何在Android应用中实现圆形头像的绘制。 ### 一、理解需求 在...

    MFC圆形图章绘制

    1、相关技术:MFC文字输出控制、圆形绘制函数、五角星绘制、数字范围控制、效果仿制; 2、程序书写属于业余水平,仅用于交流; 3、开发环境Microsoft Visual Studio 2008,程序存在不足之处,但不影响使用

    GDI+绘制圆形等待进度条

    在Windows编程领域,GDI+(Graphics Device Interface Plus)是一个强大的图形处理库,它扩展了传统的GDI功能,提供了更多的图形绘制和图像处理能力。在本主题中,我们将深入探讨如何利用GDI+在MFC(Microsoft ...

    opencv图像绘制

    3. **圆形绘制**:`cv2.circle()`函数绘制圆或圆弧。除了图像,它还需要圆心坐标,半径,颜色和线宽。例如,`cv2.circle(img, (center_x, center_y), radius, color, thickness)`。 4. **多边形绘制**:`cv2....

    C# 编写的绘图板(可绘了直线,矩形,圆形,填充矩形,填充圆形等)

    3. **圆形绘制**: DrawEllipse方法可以绘制圆形或椭圆。Pen类同样用于定义线条属性。例如,绘制一个半径为50的黑色圆: ```csharp Pen blackPen = new Pen(Color.Black, 1); g.DrawEllipse(blackPen, new ...

    html5 canvas绘制的圆形气泡渐变背景动画特效源码.zip

    1. **圆形绘制**:使用Canvas的arc()方法可以绘制圆或部分圆。该方法接受五个参数,分别是圆心的x坐标、y坐标、圆的半径、起始角度(弧度制)和结束角度(弧度制)。 2. **渐变背景**:Canvas提供线性渐变...

    用代码实现ArcGIS中使用绘制的圆形选择要素

    在IT领域,特别是地理信息系统(GIS)开发中,利用编程技术来实现在地图上通过绘制圆形来选择要素是一项实用且高效的功能。本文将深入解析如何在ArcGIS中使用VBA或VB.NET等语言编写代码,以实现绘制圆形并基于此圆形...

    基于VC++的图像图形绘制系统

    2. 圆形绘制:Circle()函数用于绘制圆形,参数包括中心点坐标和半径。同样,可以通过设置不同的颜色和线条样式来改变圆形的外观。 3. 三角形绘制:通过MoveToEx()和LineTo()函数的组合使用,可以依次连接三个顶点...

    android自定义圆形进度

    3. **圆形绘制** 要创建一个圆形的进度条,我们需要在`onDraw()`方法中使用`Canvas`对象来绘制。我们可以利用`Paint`对象设置画笔的样式、颜色和宽度,然后用`canvas.drawCircle()`绘制圆心,`canvas.drawArc()`...

    自定义圆形ImagView Demo

    这样,我们就可以利用父类已经实现的大部分功能,同时可以添加我们自定义的圆形绘制逻辑。 2. **重写onDraw()方法** 在`CircleImageView`类中,我们需要覆盖`onDraw()`方法,这是Android系统绘制View的核心函数。...

Global site tag (gtag.js) - Google Analytics