本示例繪製了一個簡單的PolyLine。是否有可能在PolyLine周圍創建輪廓
是否有可能以紅色勾勒出此多邊形的輪廓。 不是一個大的紅色正方形,而是一個將所有區域的原始PolyLine概述爲3-5分的概念。
一些計算嘗試併爲固定值工作,但是當PolyLine值是隨機的時,該算法並不總是工作,因爲該行的下一部分可以向右而不是向左或向上而不是向下。
你幾乎必須提前看2-3分才能知道你是否要加或減。
有沒有更簡單的方法來做到這一點?
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PolyLine extends JPanel
{
public void paint(Graphics g) {
int[] xs = {25, 125, 85, 75, 25, 65, };
int[] ys = {50, 50, 100, 110, 150, 100};
BasicStroke traceStroke = new BasicStroke (1);
Graphics2D gc = (Graphics2D) g.create();
gc.setStroke(traceStroke);
gc.setColor(Color.BLUE);
gc.drawPolyline(xs, ys, 6);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(new PolyLine());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(20,20, 1500,1500);
frame.setVisible(true);
}
}
選項1:找到折線的幾何中心並從那裏移動所有點。這對於不規則或凹線不太好。選項2:使用線段相交公式確定需要延長/縮短的距離,將每個線段從當前位置移開。您可能需要查看線路的繞線,以確定以哪種方式將線段移動到隨機的情況。 –
另外,顯示嘗試的「一些計算」。我在這裏沒有看到任何東西。 –