Я пытаюсь нарисовать 2D-треугольник в студии Android с помощью холста. Поэтому, если я использую приведенный ниже код для рисования треугольника без его заполнения, он дает дополнительную строку. В то время как если я использую тот же код для заполнения треугольника, вывод правильный. Ниже мой код для обоих случаев:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyView (MainActivity.this));
    }

    public class MyView extends View{
        public MyView(Context context){
            super(context);
        }

        protected void onDraw(Canvas canvas){
            super.onDraw(canvas);
            Paint paint=new Paint();
            Path path=new Path();
            paint.setStyle(Paint.Style.STROKE);
            paint.setColor(Color.WHITE);
            canvas.drawPaint(paint);
            Point a=new Point(300,200);
            Point b=new Point(100,500);
            Point c=new Point(900,800);

            paint.setColor(Color.BLUE);

            path.lineTo(a.x,a.y);
            path.lineTo(b.x,b.y);
            path.lineTo(c.x,c.y);
            path.lineTo(a.x,a.y);
            path.close();
            canvas.drawPath(path,paint);}

Со стилем обводки: введите здесь описание изображения

Со стилем заливки: введите здесь описание изображения

0
Shehreen Khan 1 Ноя 2019 в 12:55

1 ответ

Используйте сначала:

path.moveTo()

Тогда

path.lineTo()
path.lineTo()
path.lineTo()
0
Style-7 1 Ноя 2019 в 15:32