最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android用Canvas繪制貝塞爾曲線

 更新時間:2022年06月29日 11:31:29   作者:360度旋轉(zhuǎn)的貓  
這篇文章主要為大家詳細介紹了Android用Canvas繪制貝塞爾曲線,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

用Canvas畫貝塞爾曲線,要畫貝塞爾曲線首先了解貝塞爾曲線:

由于用計算機畫圖大部分時間是操作鼠標來掌握線條的路徑,與手繪的感覺和效果有很大的差別。即使是一位精明的畫師能輕松繪出各種圖形,拿到鼠標想隨心所欲的畫圖也不是一件容易的事。這一點是計算機萬萬不能代替手工的工作,所以到目前為止人們只能頗感無奈。使用貝塞爾工具畫圖很大程度上彌補了這一缺憾。

貝塞爾曲線是計算機圖形圖像造型的基本工具,是圖形造型運用得最多的基本線條之一。它通過控制曲線上的四個點(起始點、終止點以及兩個相互分 離的中間點)來創(chuàng)造、編輯圖形。其中起重要作用的是位于曲線中央的控制線。這條線是虛擬的,中間與貝塞爾曲線交叉,兩端是控制端點。移動兩端的端點時貝塞 爾曲線改變曲線的曲率(彎曲的程度);移動中間點(也就是移動虛擬的控制線)時,貝塞爾曲線在起始點和終止點鎖定的情況下做均勻移動。注意,貝塞爾曲線上 的所有控制點、節(jié)點均可編輯。這種“智能化”的矢量線條為藝術(shù)家提供了一種理想的圖形編輯與創(chuàng)造的工具。

在安卓開發(fā)中Canvas提供了畫貝塞爾曲線的方法,在Canvas中的quadTo方法只能畫3次的貝塞爾曲線,不過還提供了rQuadTo方法實現(xiàn)了以結(jié)束點為原點的續(xù)接。用這個做一個滾動的波浪線,如果把這個波浪線截取一塊可以做成類似加速球的東西

/**
?* Created by Administrator on 2015/9/17.
?*/
public class MyPathView extends View {
private int height;
private int width;
private Path path;//路徑
private Paint mPaint;
private Paint mPaintpoint;
private int count;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0x23://這應該寫一個static final的變量
count++;
if (count < 80) {//形成循環(huán),因為波浪線是兩段40所以一個周期80
? ? ? ? ? ? ? ? ? ? ? ? setCount(count);
handler.sendEmptyMessageDelayed(0x23, 20);
? ? ? ? ? ? ? ? ? ? } else {
count = 0;
handler.sendEmptyMessageDelayed(0x23, 20);
? ? ? ? ? ? ? ? ? ? }
break;
? ? ? ? ? ? }

? ? ? ? }
? ? };

public void setCount(int count) {
this.count = count;
? ? ? ? invalidate();
? ? }

public MyPathView(Context context) {
super(context);
? ? }

public MyPathView(Context context, AttributeSet attrs) {
super(context, attrs);
path = new Path();
mPaint = new Paint();
mPaintpoint = new Paint();
mPaintpoint.setStrokeWidth(10);
mPaintpoint.setColor(Color.YELLOW);
mPaint.setAntiAlias(true);
mPaint.setTextSize(50);
mPaint.setStyle(Paint.Style.STROKE);
handler.sendEmptyMessage(0x23);//
? ? }

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
? ? ? ? setMeasuredDimension(width, height);
? ? }

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

path.reset();
path.moveTo(count, 100);
for (int i = 0; i < 10; i++) {
path.rQuadTo(20, 10, 40, 0);//以(count=0,100)為原點開始畫,控制點、結(jié)束點
path.rQuadTo(20, -10, 40, 0);//以(40,0)為原點開始畫,形成一個類似余弦的波浪周期
? ? ? ? }
? ? ? ? canvas.drawPath(path, mPaint);
使用quadTo繪制曲線
// ? ? ?path.moveTo(100, 100);
// ? ? ? ?path.quadTo(100, 400, 300, 300);//控制點終點
// ? ? ? ?canvas.drawPoint(100,100,mPaintpoint);//起點
// ? ? ? ?canvas.drawPoint(100,400,mPaintpoint);//控制點
// ? ? ? ?canvas.drawPoint(300,300,mPaintpoint);//終點
}
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android RecyclerView添加上拉加載更多效果

    Android RecyclerView添加上拉加載更多效果

    這篇文章主要為大家詳細介紹了Android RecyclerView添加上拉加載更多效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android仿微信網(wǎng)絡加載彈出框

    Android仿微信網(wǎng)絡加載彈出框

    這篇文章主要為大家詳細介紹了Android仿微信網(wǎng)絡加載彈出框,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Android Socket通信實現(xiàn)簡單聊天室

    Android Socket通信實現(xiàn)簡單聊天室

    這篇文章主要為大家詳細介紹了Android網(wǎng)絡編程之Socket通信實現(xiàn)簡單聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Android實現(xiàn)注冊界面

    Android實現(xiàn)注冊界面

    這篇文章主要為大家詳細介紹了Android實現(xiàn)注冊界面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Flutter中ListView 的使用示例

    Flutter中ListView 的使用示例

    這篇文章主要介紹了Flutter中ListView 的使用示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Android開發(fā)之Flutter與webview通信橋梁實現(xiàn)

    Android開發(fā)之Flutter與webview通信橋梁實現(xiàn)

    這篇文章主要為大家介紹了Android開發(fā)之Flutter與webview通信橋梁實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Android4.0平板開發(fā)之隱藏底部任務欄的方法

    Android4.0平板開發(fā)之隱藏底部任務欄的方法

    這篇文章主要介紹了Android4.0平板開發(fā)之隱藏底部任務欄的方法,結(jié)合實例形式較為詳細的分析了Android隱藏于顯示底部任務欄的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Android第三方文件選擇器aFileChooser使用方法詳解

    Android第三方文件選擇器aFileChooser使用方法詳解

    這篇文章主要介紹了Android第三方文件選擇器aFileChooser的使用方法詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android實現(xiàn)密碼明密文切換(小眼睛)

    Android實現(xiàn)密碼明密文切換(小眼睛)

    這篇文章主要為大家詳細介紹了Android實現(xiàn)密碼明密文切換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式

    AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式

    這篇文章主要介紹了AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03

最新評論

泰宁县| 贵港市| 蕉岭县| 确山县| 荆州市| 新建县| 乌鲁木齐县| 休宁县| 思南县| 宁阳县| 白朗县| 林口县| 淮阳县| 施秉县| 桦甸市| 中超| 尼勒克县| 嵊州市| 平原县| 余姚市| 伊金霍洛旗| 佛坪县| 桃江县| 安平县| 大名县| 习水县| 乾安县| 万宁市| 澎湖县| 康平县| 股票| 大悟县| 广西| 彭州市| 伊川县| 会宁县| 柳江县| 江达县| 长治市| 丹凤县| 二连浩特市|