final Polygon2D punkte,
final ArrayList<Double> dicken,
final SegSpez[] segBeschr,
final ParCollection params) {
Pol2DMitAusgMerkm[] segmente = new Pol2DMitAusgMerkm[segBeschr.length];
Polygon2D aktPol;
Polygon2D aktPunkte = new Polygon2D();
ArrayList<Double> aktDicken = new ArrayList<Double>();
ArrowMaster zeichnen = new ArrowMaster(params);
AusgMerkm ausg;
GradientPaint grad;
Vector2D p1Old, p2Old, p1, p2, v1, v2, zwisch;
Color fuell, rahmen;
for (int i = 0; i < segBeschr.length; i++) {
if (segBeschr[i] != null) {
aktPunkte.clear();
aktDicken.clear();
for (int j = segBeschr[i].getBeginn();
j <= segBeschr[i].getEnde(); j++) {
aktPunkte.add(punkte.get(j));
if (dicken != null) {
aktDicken.add(dicken.get(j));
} else {
aktDicken.add((double) ConstantsZeichenModi.PFEIL_DICKE);
}
}
aktPol = zeichnen.segmentPfeilPol2D(
aktPunkte,
aktDicken,
segBeschr[i].getPfeilAnfang(),
segBeschr[i].getPfeilEnde(),
segBeschr[i].getFaktorAnfang(),
segBeschr[i].getFaktorEnde());
ausg = segBeschr[i].getAusg();
if (ausg != null && ausg.getGradPaint() != null) {
p1Old = new Vector2D(
ausg.getGradPaint().getPoint1().getX(),
ausg.getGradPaint().getPoint1().getY());
p2Old = new Vector2D(
ausg.getGradPaint().getPoint2().getX(),
ausg.getGradPaint().getPoint2().getY());
v1 = new Vector2D(aktPunkte.get(aktPunkte.nPoints() - 1));
v1.sub(aktPunkte.get(0));
v2 = new Vector2D(v1);
v2.ortho();
p1 = new Vector2D(v1);
p1.mult(p1Old.y);
zwisch = new Vector2D(v2);
zwisch.mult(p1Old.x);
p1.translate(zwisch);
p1.translate(aktPunkte.get(0));
p2 = new Vector2D(v1);
p2.mult(p2Old.y);
zwisch = new Vector2D(v2);
zwisch.mult(p2Old.x);
p2.translate(zwisch);
p2.translate(aktPunkte.get(0));
grad = new GradientPaint(
(float) p1.x,
(float) p1.y,
ausg.getGradPaint().getColor1(),