-
2018-10-22 11:11:01
做项目的时候用到 需要选中的数字用圆框住 找到很久没找到好的cssDemo 最后才整合出自己想要的样式
#CSS 代码
/*红色圆的样式*/ .circle { width: 20px; height: 20px; border-radius: 4em; background: #E83338; }
#测试用的HTML 代码
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> <title>画个圆</title> <style type="text/css"> /*红色圆的样式*/ .circle { width: 20px; height: 20px; border-radius: 4em; background: #E83338; } </style> </head> <body> <table cellspacing="12px"> <tr><td class="circle">1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr> <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr> <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr> <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr> <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td class="circle">7</td></tr> </table> </body> </html>
#效果图(看起来样式还是不理想 需要自己在微调一下,但是功能还是实现了的)点我查看
#实际效果图
更多相关内容 -
超实用AI描边小技巧:AI画一个圆点组成的圆
2020-12-20 08:12:59昨天有朋友问我怎么AI画一个圆点组成的圆,我第一反应是用描边,第二个备用方案是散点画笔。下面小编为大家介绍AI描边小技巧,推荐过来,一起来看看吧!以下左图是描边画的,右图是散点画笔做的。对比一下,很显然第...昨天有朋友问我怎么AI画一个圆点组成的圆,我第一反应是用描边,第二个备用方案是散点画笔。下面小编为大家介绍AI描边小技巧,推荐过来,一起来看看吧!
以下左图是描边画的,右图是散点画笔做的。对比一下,很显然第一个图形要比第二个好,第二个图形参差不齐甚至圆点都重叠了,不过倒是可以试试调节一下散点画笔的参数,会有意想不到的效果。
描边方法(分别外圈和内圈的参数):
描边的好处是调节粗细数值,可以控制圆点的大小和线条的粗细,并通过间隙可以调节分布距离。缺点是,你看到的圆点并不是100%的圆,如果你追求完美的话就用下面这种方法。
左边是描边的效果,右边是图案画笔效果。
对比两者的效果(参数没细调有点不一样),图案画笔还是个不错的解决方案。唯一不足的地方是不能单独控制线的粗细,如果粗细不合适的话,你需要重新画一个小线条,然后将它设成图案画笔。
如果只是应用于排版的话,那么用描边就可以了,简单快速。最最最完美的解决方法是自己计算出数值,用工具旋转。
具体参数就不说了,自己下载源文件看看就知道了。以下是几个图案加了颜色和线条配置。
教程结束,以上就是超实用AI描边小技巧,希望能对大家有所帮助!
-
动图之一个圆绕另一个圆转动
2021-06-12 12:41:41问题2:圆1绕圆2转一圈,圆1与圆2的接触点在圆1上的为a,点a相对于圆2圆心转了多少度? 圆心没有自转 圆1的圆心走了2π(r1+r2)2\pi(r_1+r_2)2π(r1+r2),圆1自转了的路程也是2π(r1+r2)2\pi(r_1+r_2)2π(r1+r2...已知圆1与圆2,圆2不动,圆1绕圆2转一圈,圆1自转多少圈?
答:圆1的圆心走了 2 π ( r 1 + r 2 ) 2\pi(r_1+r_2) 2π(r1+r2),圆1自转了的路程也是 2 π ( r 1 + r 2 ) 2\pi(r_1+r_2) 2π(r1+r2),因此圆1自转了 2 π ( r 1 + r 2 ) 2 π r 1 \frac{2\pi(r_1+r_2)}{2\pi r_1} 2πr12π(r1+r2)圈
动图
# -*- coding: utf-8 -*- """ Created on Mon Jun 14 20:22:04 2021 @author: Leslie Lee """ import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation def coord(time, step, W, w, r1, r2): ''' r1为动圆半径 r2为静圆半径 W为公转角速度 w为自转角速度 time为离散时间长度 ''' t = np.arange(0, time, step) x = np.sin(W*t)*r1 y = np.cos(W*t)*r1 x1 = np.sin(W*t)*(r1+r2) y1 = np.cos(W*t)*(r1+r2) x2 = x1 + r1*np.sin(w*t/2) y2 = y1 - r1*np.cos(w*t/2) return x, y, x1, y1, x2, y2 time = 500 step = 0.05 r1 = 2 r2 = 2 W = np.deg2rad(3.6)*10 w =np.deg2rad(3.6)*10 x,y,x1,y1,x2,y2 = coord(time, step, W, w, r1, r2) # 建立fig fig = plt.figure() ax = fig.add_subplot(111, autoscale_on=False, xlim=(-8, 8), ylim=(-8, 8)) ax.grid() line, = ax.plot([], [], 'o-', lw=2) time_template = 'time = %.1fs' # 格式化输出 保留一位浮点数 time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes) def init(): line.set_data([], []) time_text.set_text('') return line, time_text def animate(i): thisx = [0, x[i], x1[i], x2[i]] thisy = [0, y[i], y1[i], y2[i]] line.set_data(thisx, thisy) time_text.set_text(time_template % (i*step)) return line, time_text ani = animation.FuncAnimation(fig, animate, np.arange(0, len(y)), interval=25, blit=True, init_func=init) plt.show()
在动画的基础上又将轨迹画了上去
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation def coord(time, step, W, w, r1, r2): ''' r1为动圆半径 r2为静圆半径 W为公转角速度 w为自转角速度 time为离散时间长度 ''' t = np.arange(0, time, step) x = np.sin(W*t)*r1 y = np.cos(W*t)*r1 x1 = np.sin(W*t)*(r1+r2) y1 = np.cos(W*t)*(r1+r2) x2 = x1 + r1*np.sin(w*t/2) y2 = y1 - r1*np.cos(w*t/2) return x, y, x1, y1, x2, y2 time = 500 step = 0.05 r1 = 2 r2 = 2 W = np.deg2rad(3.6)*10 w =np.deg2rad(3.6)*10 x,y,x1,y1,x2,y2 = coord(time, step, W, w, r1, r2) fig = plt.figure() ax = plt.gca() ax.set_aspect(1) plt.plot(x, y) plt.plot(x1, y1) plt.plot(x2, y2) line, = ax.plot([], [], 'o-', lw=2) time_template = 'time = %.1fs' # 格式化输出 保留一位浮点数 time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes) def init(): line.set_data([], []) time_text.set_text('') return line, time_text def animate(i): thisx = [0, x[i], x1[i], x2[i]] thisy = [0, y[i], y1[i], y2[i]] line.set_data(thisx, thisy) time_text.set_text(time_template % (i*step)) return line, time_text ani = animation.FuncAnimation(fig, animate, np.arange(0, len(y)), interval=25, blit=True, init_func=init) plt.show()
保存gif,需要安装pillow
ani.save('F:\double_pendulum.gif', writer='pillow')
验证
如何验证圆1自转了多少圈?
即验证蓝线上的红点走够一圈,绿线的长度是否为 2 π ( r 1 + r 2 ) 2\pi(r_1+r_2) 2π(r1+r2)
方1. 曲线积分,已知曲线参数方程 ( x 2 ( t ) , y 2 ( t ) ) (x_2(t),y_2(t)) (x2(t),y2(t)),来求弧长
方2. 已知绿线的离散点,对相邻两个离散点求距离,将所有距离累计起来便是弧长
方1出现了不可积项,因此放弃方1积分程序
# -*- coding: utf-8 -*- """ Created on Tue Jun 15 08:44:13 2021 @author: Leslie Lee 用python的库 sympy 求积分 https://blog.csdn.net/t4ngw/article/details/105770161 https://wenku.baidu.com/view/5b46565491c69ec3d5bbfd0a79563c1ec4dad71c.html """ import numpy as np from sympy import var, diff, integrate, sin, cos, sqrt, simplify, trigsimp, pi def arc(r1, r2, W, w): var("t") x1 = sin(W*t)*(r1+r2) y1 = cos(W*t)*(r1+r2) x2 = x1 + r1*sin(w*t/2) y2 = y1 - r1*cos(w*t/2) # 求导 dx2 = diff(x2, t) dy2 = diff(y2, t) # 积分 end = 2*pi/w res = integrate(sqrt(dx2**2+dy2**2), (t, 0, end)) res = trigsimp(simplify(res)) return res W = np.deg2rad(3.6)*10 w =np.deg2rad(3.6)*10 r1 = 2 r2 = 2 res = arc(2, 2, W, w)
方2累加程序
# -*- coding: utf-8 -*- """ Created on Mon Jun 21 11:27:28 2021 @author: Leslie Lee """ import numpy as np import matplotlib.pyplot as plt def arc(r1, r2, W, w, num): time = 2*np.pi/W step = time/num # print(time, step) t = np.arange(0, time, step) x1 = np.sin(W*t)*(r1+r2) y1 = np.cos(W*t)*(r1+r2) x2 = x1 + r1*np.sin(w*t/2) y2 = y1 - r1*np.cos(w*t/2) # 实际值 res = 0 for i in range(int(len(x2)-1)): res = res + ((x2[i+1] - x2[i])**2 + (y2[i+1] - y2[i])**2)**0.5 # 目标值 target_res = 2*np.pi*(r1+r2) return res, target_res # 结果与转速无关 与离散时间的间隔有关 W = np.deg2rad(3.6)*10 w =np.deg2rad(3.6)*10 r1 = 2 r2 = 2 nums = [] results = [] target_results = [] for i in range(1, 1000, 10): res, t_res = arc(2, 2, W, w, i) nums.append(i) results.append(res) target_results.append(t_res) plt.plot(nums, results, label='real') plt.plot(nums, target_results, label='target') plt.xlabel('the length of time series') plt.legend() plt.show()
验证了确实对了,但时间序列间隔也不是越小越好,有个限度,比如这个例子中间隔为50结果就是正常结果(两条曲线交点)参考:
求解双摆与单摆运动轨迹并绘制动图。https://blog.csdn.net/qq_37083038/article/details/117884311
python学习之matplotlib绘制动图(FuncAnimation()参数)。https://www.cnblogs.com/zhouzhe-blog/p/9614360.html -
Android自定义View之画圆环(手把手教你如何一步步画圆环)
2018-06-19 17:24:21好了,吐槽时间到.自定义view是Android开发知识体系中的重点,也是难点.好多小伙伴(也包括我)之前对自定义view也是似懂非懂.那种感觉老难受了.因此作为社会主义好青年,怎么能够不加钻研呢?那可不是你我的风格哦.因此,...关于自定义View:
好了,吐槽时间到.自定义view是Android开发知识体系中的重点,也是难点.好多小伙伴(也包括我)之前对自定义view也是似懂非懂.那种感觉老难受了.因此作为社会主义好青年,怎么能够不加钻研呢?那可不是你我的风格哦.因此,我将通过几篇博文来展示自定义view的基本流程.另外,我说一下,关于自定义view的学习呢,我们还是得动手敲代码,实践出真知!因此,我强烈建议同志们先从最基本,最简单的自定义view画起,这样在自定义view的过程中,才能了解其原理,从而为以后画出各种各样炫酷的view,打下基础. OK,本片博文将通过自定义圆环,带你去探索自定义view的奥妙…
俗话说无规矩不成方圆,无图全是扯淡!
实现的效果图:
自定义圆环流程:
上图就是自定义圆环的指导图(非常重要).下面就根据这个神图,来向大家介绍下如何自定义圆环?
Step 1:画里面的白色小圆
事实上,里面的白色圆圈如果不画的话,我们也可以画圆环,但是,但是,但是,重要的事情说三遍.强烈建议不要遗漏.因为在画圆时候,我们能对半径等参数有更加清晰,便于后续圆环的绘制.再说了,画个圆又咋了,无非几行代码的事.Step 2:画矩形(正方形)
这个正方形是画圆环的最核心的步骤.如果想要画出图中绿色的圆环,这个正方形是必须的.注意看正方形是红边圆圈的外接圆.而这个所谓的红色圆圈正好处在圆环中间位置.图中一目了然,不在瞎啰嗦了.Step 3:画圆环
其实到了这一步,我们的圆环就已经出来了.此处我们可以做的是圆环的属性的调节,比如,你可以调节圆环的颜色啥的
###关于自定义view的基本知识储备
如果你对自定义view的基本流程已经有了一个基本的认知的话,可以跳过次步骤.如果你不是很熟悉的话,推荐你先阅读下Android自定义View的官方套路 ,里面介绍的还可以.
自定义圆环步骤:
Step 1: 继承View
对Android有一些了解的朋友都知道,android为我们提供的很多View都是继承与View的。所以我们自定义的View当然也是继承于View,当然如果你要自定义的View拥有某些android已经提供的控件的功能,你可以直接继承于已经提供的控件。
public class SuperCircleView extends View { public SuperCircleView(Context context) { this(context, null); } public SuperCircleView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public SuperCircleView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public SuperCircleView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); ..... ..... } }
Step 2:定义自定义属性
大部分情况我们的自定义View需要有更多的灵活性,比如我们在xml中指定了颜色大小等属性,在程序运行时候控件就能展示出相应的颜色和大小。所以我们需要自定义属性自定义属性通常写在资源文件res/values/attrs.xml文件中.
贴出attr_super_circle.xml属性文件
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="SuperCircleView"> <!-- 圆的半径 --> <attr name="min_circle_radio" format="integer"/> <!-- 圆环的宽度 --> <attr name="ring_width" format="float"/> <!-- 内圆的颜色 --> <attr name="circle_color" format="color"/> <!-- 外圆的颜色 --> <attr name="max_circle_color" format="color"/> <!-- 圆环的默认颜色 --> <attr name="ring_normal_color" format="color"/> <!-- 圆环要显示的彩色的区域(随着数值的改变,显示不同大小的彩色区域)--> <attr name="ring_color_select" format="integer"/> <!-- 绘制内容的数值 --> <attr name="maxValue" format="integer" /> <attr name="value" format="integer" /> </declare-styleable> </resources>
Step 3:在xml中引用自定义的圆环控件
其实这一步,正常情况下是应该放在自定义圆环完成之后.但是为了演示Step4中获取自定义属性的逻辑,暂时放在这一步了.由于通常我们需要拿到属性做一些事情,因此就需要在xml中设置了控件自定义属性。否则定义自定义属性就没有意义了。
直接上布局文件activity_main.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <FrameLayout android:layout_width="300dp" android:layout_height="300dp" android:layout_gravity="center"> <com.example.zq.drawcircledemo.SuperCircleView android:id="@+id/superview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" app:maxValue="100" app:value="20" app:ring_width="60" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginBottom="60dp" android:text="信息完成度" android:textColor="#CFD5DE" android:textSize="18sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10dp" android:orientation="horizontal"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" android:textColor="#506946" android:textSize="80sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="%" android:textSize="28sp" /> </LinearLayout> </FrameLayout> </LinearLayout>
布局文件中的
app:maxValue="100" app:ring_width="60"
设置的属性就是我们在attr.xml中定义的.至于如何获取这些自定义属性的数值,后面会展示.
Step 4:自定义圆环初始化操作
有三个构造方法(一个参数、两个参数、三个参数),其中两个参数的构造方法必须有。
在 public SuperCircleView(Context context, AttributeSet attrs, int defStyleAttr){…}中进行初始化的操作.基本是一些获取自定义属性的操作
public class SuperCircleView extends View { private final String TAG = "SuperCircleView"; private ValueAnimator valueAnimator; private int mViewCenterX; //view宽的中心点(可以暂时理解为圆心) private int mViewCenterY; //view高的中心点(可以暂时理解为圆心) private int mMinRadio; //最里面白色圆的半径 private float mRingWidth; //圆环的宽度 private int mMinCircleColor; //最里面圆的颜色 private int mRingNormalColor; //默认圆环的颜色 private Paint mPaint; private int color[] = new int[3]; //渐变颜色 private RectF mRectF; //圆环的矩形区域 private int mSelectRing = 0; //要显示的彩色区域(岁数值变化) private int mMaxValue; public SuperCircleView(Context context) { this(context, null); } public SuperCircleView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public SuperCircleView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SuperCircleView); //最里面白色圆的半径 mMinRadio = a.getInteger(R.styleable.SuperCircleView_min_circle_radio, 300); //圆环宽度 mRingWidth = a.getFloat(R.styleable.SuperCircleView_ring_width, 40); //最里面的圆的颜色(绿色) mMinCircleColor = a.getColor(R.styleable.SuperCircleView_circle_color, context.getResources().getColor(R.color.green)); //圆环的默认颜色(圆环占据的是里面的圆的空间) mRingNormalColor = a.getColor(R.styleable.SuperCircleView_ring_normal_color, context.getResources().getColor(R.color.gray)); //圆环要显示的彩色的区域 mSelectRing = a.getInt(R.styleable.SuperCircleView_ring_color_select, 0); mMaxValue = a.getInt(R.styleable.SuperCircleView_maxValue, 100); a.recycle(); //抗锯齿画笔 mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); //防止边缘锯齿 mPaint.setAntiAlias(true); //需要重写onDraw就得调用此 this.setWillNotDraw(false); //圆环渐变的颜色 color[0] = Color.parseColor("#FFD300"); color[1] = Color.parseColor("#FF0084"); color[2] = Color.parseColor("#16FF00"); } }
Step 5:画圆环
首先说一些,自定义view的话一般会重写一下三个方法:
onDraw(): 是用来绘制View图像,这个方法必须有.
onMeasure(): 用于改变View 的大小。
onLayout(): 用于改变View在父控件中的位置Ok,继续.
(1).确定待画里面圆形以及矩形的位置@Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); //view的宽和高,相对于父布局(用于确定圆心) int viewWidth = getMeasuredWidth(); int viewHeight = getMeasuredHeight(); mViewCenterX = viewWidth / 2; mViewCenterY = viewHeight / 2; //画矩形 mRectF = new RectF(mViewCenterX - mMinRadio - mRingWidth / 2, mViewCenterY - mMinRadio - mRingWidth / 2, mViewCenterX + mMinRadio + mRingWidth / 2, mViewCenterY + mMinRadio + mRingWidth / 2); }
(2).绘制圆环
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); mPaint.setColor(mMinCircleColor); canvas.drawCircle(mViewCenterX, mViewCenterY, mMinRadio, mPaint); //画默认圆环 drawNormalRing(canvas); //画彩色圆环 drawColorRing(canvas); } /** * 画默认圆环 * * @param canvas */ private void drawNormalRing(Canvas canvas) { Paint ringNormalPaint = new Paint(mPaint); ringNormalPaint.setStyle(Paint.Style.STROKE); ringNormalPaint.setStrokeWidth(mRingWidth); ringNormalPaint.setColor(mRingNormalColor);//圆环默认颜色为灰色 canvas.drawArc(mRectF, 360, 360, false, ringNormalPaint); } /** * 画彩色圆环 * * @param canvas */ private void drawColorRing(Canvas canvas) { Paint ringColorPaint = new Paint(mPaint); ringColorPaint.setStyle(Paint.Style.STROKE); ringColorPaint.setStrokeWidth(mRingWidth); ringColorPaint.setShader(new SweepGradient(mViewCenterX, mViewCenterX, color, null)); //逆时针旋转90度 canvas.rotate(-90, mViewCenterX, mViewCenterY); canvas.drawArc(mRectF, 360, mSelectRing, false, ringColorPaint); ringColorPaint.setShader(null); }
ok,代码中的注释已经很详细了,我就不再细说了.
我只想说一下,代码中在绘制彩色圆环的时canvas.rotate(-90, mViewCenterX, mViewCenterY);注释中已经说了左边旋转90度.那么问题来了为什么要逆时针旋转90度呢?
这个是因为在后面画渐变色的圆弧时,drawArc和SweepGradient这两个类的起始点0度不是在我们习惯的圆环最上面那个点,而是从圆环最右边那个点开始,所以逆时针旋转90度就能让它从最上面的点开始.盗图演示:
这下明白了吧.如果你还体会不深刻的话,就让你看一下,假如不逆时针旋转90度的话,是什么样的效果吧.
看到需要逆时针旋转90度的区别了吧.
Step 6:设置自定义view的部分监听事件
通过上述步骤我们所需的圆环基本完成了.但是,要知道,画圆环不是目的,目的是让圆环去传表达或者描述一些信息,常用的场景,比如用来显示计步器的步数,显示文件下载的完成度等等.因此我们可以适当的添加点监听事件.
//***************************************用于更新圆环表示的数值***************************************************** /** * 设置当前值 * * @param value */ public void setValue(int value,TextView textView) { if (value > mMaxValue) { value = mMaxValue; } int start = 0; int end = value; startAnimator(start, end, 2000,textView); } private void startAnimator(int start, int end, long animTime, final TextView textView) { valueAnimator = ValueAnimator.ofInt(start, end); valueAnimator.setDuration(animTime); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { Log.i(TAG, "onAnimationUpdate: animation.getAnimatedValue()::"+animation.getAnimatedValue()); int i = Integer.valueOf(String.valueOf(animation.getAnimatedValue())); textView.setText(i + ""); //每个单位长度占多少度 mSelectRing=(int) (360 * (i / 100f)); Log.i(TAG, "onAnimationUpdate: mSelectRing::"+mSelectRing); invalidate(); } }); valueAnimator.start(); }
主程序 MainActivity.java:
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; SuperCircleView mSuperCircleView; TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.tv); mSuperCircleView = findViewById(R.id.superview); mSuperCircleView.setValue(100, textView); mSuperCircleView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //随机设定圆环大小 int i = new Random().nextInt(100) + 1; Log.i(TAG, "onClick: i::" + i); mSuperCircleView.setValue(i, textView); } }); } }
上述代码中设计属性动画ValueAnimator的相关知识,有兴趣的同学自己学习下.
好了,至此,自定义圆环结束.如果有疑问的话,请留言.诺诺的说一句,如果你感觉这篇文章写的还行的话,请给个赞.我感觉我需要被鼓励,哈哈,开玩笑的…附上示例:
https://download.csdn.net/download/zhangqunshuai/10486568
参考文章:
一步步做Android自定义圆环百分比控件
Android自定义View的官方套路
Android 自定义view实现圆环 -
用C++画一个圆
2017-01-02 21:07:46注:我的开发环境是vs2013,所以需要手动配置EasyX图形库,还没配置图形库的可以参考我的另一片文章 一、配置好图形库(可以参考我那篇EasyX图形库配置的文章) 二、开始编码 -
wps中如何画三个相交的圆
2020-12-19 05:46:22在数学中常用两个或多个圆重叠起来的图来表示集合中的交集,也有用重叠的图来更加直观地表示某些条件或事物的叠加。图1所示便是用来表示交集与重叠的图。图1 表示交集与重叠的图那么用户怎样才能在WPS中画出图1所示... -
使用svg实现一个半圆圆角进度条
2019-07-17 15:44:46前言 在使用echarts环形图实现...所幸的是,UI对于进度条的的要求并不严格,既然这样的话,我们可以使用svg自己画出一个理想中的圆角进度条 先来看看效果: 效果还是能看的,下面讲讲如何去实现它 一个圆 无论如何... -
带你快速玩转canvas(2)画个矩形,再画个圆
2016-12-05 01:30:30先讲API,再讲如何画,没有... 绘制一个矩形; 2. 该矩形为填充满的; 3. x和y指矩形左上角,相对于画布的坐标。 4. x和y的标准范围是x:0~width, y:0~height 5. 参数是number类型,不是字符串类型; 6. 示例:ctx.fil -
在ai里怎么把一个圆平均分成几份
2021-06-27 06:17:34第二步:在工具栏中选择“极坐标网格工具”,鼠标长按“直线段工具”,弹出的菜单栏中最后一个就是“极坐标网格工具” 第三步:双击“极坐标网格工具”,调出“极坐标网格工具选项” 第四步:在弹出的“极坐标网格... -
纯css实现大圆圆弧上画12个小圆均匀分布
2019-04-12 06:17:15话不多说,基本思路是第一步先画一个大圆,然后12个小圆,每个小圆通过css transform 的rotate旋转,光旋转还不行,要通过transform-origin(设置旋转元素的基点位置),根据不同基点去旋转,还有一个地方就是小圆... -
使用python绘制4个相切的圆形
2021-02-10 06:35:38python 版本:3.4.3模块:turtle代码如下:#-*-charset:utf-8-*-importturtle#本程序使用turtle绘制4个相切的圆形#移动到第一个坐标点,画第一个圆形#注意:turtle.circle(radius)方法画圆是在圆形最低点逆时针方向... -
如何用python画同心圆
2020-11-20 20:53:21Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新...许多人想要学习使用python来编程,今天教大家用python画同心圆,提升学习兴趣。工具/原料pyth... -
python turtle画椭圆-【python turtle如何画椭圆】
2020-11-01 12:22:29python turtle画4个同心圆方法from turtle import *def Circle(radius,angle,length):for i in range(length):penup()goto(0,angle)pendown()circle(radius)angle=angle 50radius=radius-50Circle(200,-200,4)done()... -
WPS怎么画出数学中表示交集的图即两个或多个圆的重叠图
2020-12-19 05:46:31常用两个或多个圆重叠起来的图来表示集合中的交集,也有用重叠的图来更加直观地表示某些条件或事物的叠加。图1所示便是用来表示交集与重叠的图。高中数学老师在制作文档时,往往是最麻烦的。因为有很多图形需要绘制... -
使用opencv画最小外接矩形与最小外接圆
2015-09-27 16:26:20使用opencv画出图形的最小外接矩形与最小外接圆,首先求出图形的轮廓,设有滚动条可以选择最佳阈值,然后画出图形的最小外接圆与最小外接矩形,算法的效果很好! -
微信小程序利用canvas绘制一个动画百分比圆圈
2018-07-04 10:53:44在一次项目开发中,有个应用需求,就是不仅展示用户答题之后的分数和测评等级,还要利用动画圆圈的形式展示用户完成比。首先一般先想到的就是利用canvas绘图,因为如果用CSS来制作的话会很麻烦,而且还要配合脚本... -
手把手教你画一个 逼格满满圆形水波纹loadingview Android
2016-01-18 11:13:28那么今天,我们就站在爱哥的丁丁上来学习制作一款自定义view(开个玩笑,爱哥看到别打我)。 在开始之前,首先来说说预备知识,这些知识在爱哥的博客上都有详细的介绍:点我进入爱哥自定义view系列 预备的... -
canvas画圆环(一)之渐变色,纯色
2018-12-02 23:55:41通过canvas画可自定义颜色的圆环,可当进度进度条使用 -
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2020-11-20 19:48:12Python matplotlib通过plt.scatter画空心圆标记出特定的点方法更新时间:2018年12月13日 10:30:26 作者:Alan-Guo今天小编就为大家分享一篇Python matplotlib通过plt.scatter画空心圆标记出特定的点方法,具有很好的... -
用c++画椭圆
2017-01-02 22:02:35注:我的开发环境是vs2013,所以需要手动配置EasyX图形库,还没配置图形库的可以参考我的另一片文章 一、配置好图形库(可以参考我那篇EasyX图形库配置的文章) 二、开始编码 -
cdr怎样将一个圆形平均划分为三等分?
2020-12-23 14:30:12在页面上绘制一个大圆2、使用鼠标单击一下大圆上方的“饼图”,页面上的图形即变成了如图所示的图形3、要把一个圆划分多少部分,最重要的就是在起始角度和结束角度栏设置好正确的角度数值4、一个圆为360°,... -
平面上有2N+1个点,如何画一个圆,使得N个点在圆内,N个点在圆外,一个点在圆上
2015-03-23 14:22:20平面上有2N+1个点,如何画一个圆,使得N个点在圆内,N个点在圆外,一个点在圆上 解:还少条件,没有三点共线,四点共圆,n》=2,而且不是一个点在圆上,是圆内点数等于园外点数。在这些前提下,可以这样解答 在平面的... -
用Canvas画占百分比的圆形比例
2016-03-25 17:34:16先看一下效果图:开发流程及主要思想第一步:先画一个背景第二步:占比例的圆的是从圆的正上方开始的画的,而默认情况下画的圆是从圆心的右边开始画的,所以要将圆旋转设置-90度,也就是 -Math.PI/2 默认情况下画... -
CAD二次开发入门——Hello World以及画一个圆
2017-11-04 19:23:08cad二次开发的准备工作:需要在cad的安装文件中加载红色框中的dll文件。 然后就是一堆Using: ...然后就是一个在cad中加载生成的dll文件的问题。这里用下面的这个方法: http://jingyan.baidu.com/article/d8072 -
Flutter:教你用CustomPaint画一个自定义的CircleProgressBar
2018-11-03 16:12:55注意:这其实是一篇CustomPaint的使用教程!! 源码地址:https://github.com/yumi0629/FlutterUI/tree/master/lib/circleprogressbar 在Flutter中,CustomPaint就像是Android中的Paint一样,可以用它... -
使用canvas生成一个圆形的图片
2018-11-07 19:10:23之前发现在网上无法找到相关的内容,找的...我使用的图片是等宽高的图片,获取到图片资源以后,额外的创建一个canvas,将图像使用drawImage方法画到画布上,我们在这个canvas上面处理图像。通过canvas对象的conte... -
JAVA判断一个地理坐标是否在一个多边形区域内和是否在一个圆形区域内(经纬度)
2018-03-05 20:17:27多边形和圆分开写,首先简单的就是判断是否在圆里面,如何判断一个坐标是否在圆形区域内,相信不用我说都知道,计算这个坐标点和圆心之间的距离,然后跟圆的半径进行比较,如果比半径大,就不在圆形区域内,如果小于... -
python画一个爱心
2021-02-01 20:51:44大家好这是我的地一篇博客,我要写一个关于python的文章我要用python写一个爱心。 不说别的,先看效果 效果如下: 话不多说,上代码,在这之前要下载python下载这事咱们放在最后现在上代码!!!!!!!!!!!!... -
Android自定义View之画圆环(进阶篇:圆形进度条)
2018-06-22 13:43:12前言: &amp;amp;amp;amp;...如果你想读懂或者更好的理解本篇文章关于自定义圆环...请你务必提前阅读下Android自定义View之画圆环(手把手教你如何一步步画圆环).在这篇文章中,详细描述了最基本的自定义圆环的绘 -
如何用Python画一个简单的笑脸
2022-03-25 18:29:25还有就是,由于小乌龟都是按照精确的步长来跑的,所以一定要事先在坐标上确定好要画的图案的各个部分在坐标的相对位置,那一波参数可以根据画画的表现进行修改,我也是边画边凭感觉改参数的。 代码 from turtle ...