Я использую DDA (Digital Differential Analizer), чтобы сделать линию, и подумал, что я знаю, возможно, используя DrawLine так, как я, просто бегите вместе с ним. Я пытаюсь сделать разные типы линий, например пунктирные или пунктирные, и т. Д. Im, думая о том, чтобы сделать снизу, прыгать рядом, чтобы сделать пунктирную линию. Но я не могу найти способ сделать это. Это то, что у меня есть до сих пор:Цифровой аналитический анализатор пунктирной линии
public void paint(Graphics g) {
super.paint(g);
int dot=0;
int x1 = pointStart.x;
int x2 = pointEnd.x;
int y1 = pointStart.y;
int y2 = pointEnd.y;
float dx, dy, m, y, x;
if (x1>x2){
int ax = x2;
int ay = y2;
x2 = x1;
x1 = ax;
y2 = y1;
y1 = ay;
}
dx = x2 - x1;
dy = y2 - y1;
m = dy/dx;
if (m>=-1&&m<=1){
dot = (int)dx/4;
y = y1;
System.out.println(m);
for (x = x1 ; x <= x2;x++){
//if (x>=dot&&x<=dot+10||x>=dot*2&&x<=dot*2+10||x>=dot*3&&x<=dot*3+10){
g.drawLine((int)x, (int)Math.round(y), (int)x, (int)Math.round(y));
y+=m;
//}
}
}
else{
x = x1;
System.out.println(m);
for (y = y1 ; y <= y2;y++){
g.drawLine((int)Math.round(x), (int)y, (int)Math.round(x), (int)y);
x+=1/m;
}
}
/*if (pointStart != null) {
if (x1>)
g.setColor(Color.RED);
//g.drawLine(pointStart.x, pointStart.y, pointEnd.x, pointEnd.y);
g.drawLine(x1, y1, x1, y1);
}*/
}
Любые идеи?
Как насчет того, чтобы вы изменили цвет линии на цвет фона, а затем снова «прыгали» на черный (или любой другой цвет, который вы выбрали), затем снова переходите к цвету фона ... таким образом, вы получаете эффект. Но это также зависит от слоев, которые вы используете, и если что-то прозрачно и т. Д. – mike
Ничего себе не думал о том, что XD ty Ill попробуйте. –
Добро пожаловать! – mike