Толщина линии Flash / Actionscript будет рисовать линии вне координат, указанных в lineTo.

Это очень простой вопрос, с которым я столкнулся при рисовании с помощью AS. Допустим, у меня есть следующий код.

g.lineStyle(20, 0xff0000, 1, false);
g.moveTo(10, 10);
g.lineTo(210, 10);   

Поскольку толщина линии равна 20. Это фактически будет рисовать линию в виде прямоугольника от (0,0) до (220, 20). т.е. толщина / 2 будет добавлена ​​в каждом измерении.

Я хотел знать, если: 1. Это правильно или я ошибся? 2. Поэтому каждый раз, когда нам нужно провести линию там, где мы не хотим, чтобы она была связана чем-то, например, рисуя внутреннюю границу, мы должны это учитывать, чтобы линия не выходила за пределы определенной области. Это тоже правильно?


person Code Robot    schedule 20.03.2014    source источник


Ответы (1)


Да, 1) правильно. Что касается 2) на самом деле метод getRect () не учитывает ширину штриха. Вот код:

stop();

var mc:MovieClip = new MovieClip();

var gr:Graphics = mc.graphics;


//Draw a rectangle 50x50
gr.lineStyle(20);
gr.beginFill(0, 0.5);
gr.drawRect(0, 0, 50, 50);
gr.endFill();

this.addChild(mc);

//Will trace (x=0, y=0, w=50, h=50)
trace(mc.getRect(this));

//Will trace (x=-10, y=-10, w=70, h=70)
trace(mc.getBounds(this));
person Codeluck    schedule 20.03.2014