我正在Android Studio中制作一个逻辑模拟器应用程序,我希望将导线图水平放置,如果有角度,则垂直线(没有对角线)。
当前,我的线绘制了从网格上的一个对象到下一个对象的最短路径。
public void drawWires(Canvas canvas, Paint paint){
if (inputA != null){ drawWire(canvas, paint, inputA); }
if (inputB != null){ drawWire(canvas, paint, inputB);}
}
public void drawWire(Canvas canvas, Paint paint, LogicNode input) {
paint.setColor(Color.BLUE);
paint.setStrokeWidth(5);
canvas.drawLine( input.getX() + input.getW() * 3/4,
input.getY() + input.getH() * 1/ 2,
this.getX() + this.getW() * 1/4,
this.getY() + this.getH()* 1/2, paint);
}
how I want the line to look.这是图形在应用程序上的外观:http://prntscr.com/q17rpg...到目前为止,我为实现新布线所做的工作:
此时,我正在努力弄清楚我需要如何使用自己拥有的价值观。比这简单吗?我在想,我需要将线从(x,0)和(0,Y)分开的点通过获取中点值得到。
[当您呼叫drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
并想要水平行时,drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
和startY
的值必须相同。
当您需要垂直行时,stopY
和startX
的值必须相同。
您的代码具有:
stopX
这不是试图绘制horizontal线或vertical线。
绘制2(!)线以将canvas.drawLine(input.getX() + input.getW() * 3/4,
input.getY() + input.getH() * 1/2,
this.getX() + this.getW() * 1/4,
this.getY() + this.getH() * 1/2, paint);
连接到(startX, startY)
,第一行垂直和第二行水平]:]
(stopX, stopY)