11.1绘制基本图形-面试例题3:绘制三角形

分别使用drawLines和drawLine方法画三角形

如果使用drawLines方法绘制三角形,则需要指定6个坐标点,现在使用drawLine方法指定3个坐标就可以绘制三角形了(绘制首尾相连的直线)

答案:改进后的方法的基本原理是指定n个点的坐标(p1,p2,p3.....pn)后,分别取n次坐标,第一次取p1和p2,第二次取p2和p3.....第n次取pn和p1.这样就可以用直线绘制首尾相连的图形了。

代码:

  
  
  
  
  1. package com.app;  
  2.  
  3. import android.content.Context;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Color;  
  6. import android.graphics.Paint;  
  7. import android.view.View;  
  8.  
  9. public class DrawLinesExtView extends View{  
  10.     float [] pts = new float[]{200,10,60,300,180,320};  
  11.     public DrawLinesExtView(Context context) {  
  12.         super(context);  
  13.     }  
  14.  
  15.     @Override  
  16.     protected void onDraw(Canvas canvas) {  
  17.         super.onDraw(canvas);  
  18.         Paint paint = new Paint();  
  19.         paint.setColor(Color.BLUE);  
  20.         for(int i = 0;i<pts.length;i+=2){  
  21.             int stopXIndex = i+2;  
  22.             int stopYIndex = i+3;  
  23.             if(stopXIndex>pts.length-1){  
  24.                 stopXIndex = 0;  
  25.             }  
  26.             if(stopYIndex>pts.length-1){  
  27.                 stopYIndex = 1;  
  28.             }  
  29.             canvas.drawLine(pts[i], pts[i+1], pts[stopXIndex], pts[stopYIndex], paint);  
  30.         }  
  31.         canvas.drawLines(new float[]{100,10,20,200,100,10,120,220,20,200,120,220}, 0, 12, paint);  
  32.     }  
  33. }  

 效果图:

 

 

你可能感兴趣的:(android,三角形,drawline,drawLines)