melmager
Erfahrenes Mitglied
ich habe eben festgestellt das Java beim Fill den ganzen GeneralPath (Sharpe) füllt.
ich hatte eigendlich for eine frei Fläche zu lassen - muss ich tatsächlich erst den Aussenrand zeichnen und dann Schwarz füllen und dann innen die Weisse Fläche malen und die dann Weiss füllen ?
Oder habe ich ein denkfehler ?
da ich das Symbol mehrmals zeichne wird über ein for schleife ermittelt wo gezeichnet werden soll
Zeichnung ohne Fill siehe Foto
ich hatte eigendlich for eine frei Fläche zu lassen - muss ich tatsächlich erst den Aussenrand zeichnen und dann Schwarz füllen und dann innen die Weisse Fläche malen und die dann Weiss füllen ?
Oder habe ich ein denkfehler ?
Code:
GeneralPath makeMinorEs(int xrelpos,int yrelpos) {
GeneralPath p = new GeneralPath(); //b zeichen
xrelpos = xrelpos + px4step * 6; // ein slot nach rechts
p.moveTo(xrelpos + px4step * 0.5, yrelpos + px4step * 1.75);
p.quadTo(xrelpos + px4step * 1.5, yrelpos + px4step * 1.5, xrelpos + px4step * 1.5, yrelpos + px4step );
p.quadTo(xrelpos + px4step , yrelpos + px4step * 0.75 , xrelpos + px4step * 0.5 , yrelpos + px4step * 1.25);
p.lineTo(xrelpos + px4step * 0.5, yrelpos + px4step * 1.75);
p.moveTo(xrelpos + px4step * 0.25, yrelpos - px4step * 2);
p.lineTo(xrelpos + px4step * 0.25, yrelpos + px4step * 2);
p.quadTo(xrelpos + px4step * 1.75, yrelpos + px4step * 1.75, xrelpos + px4step * 1.75, yrelpos + px4step );
p.quadTo(xrelpos + px4step * 1.5, yrelpos + px4step * 0.25, xrelpos + px4step * 0.5, yrelpos + px4step);
p.lineTo(xrelpos + px4step * 0.5 , yrelpos - px4step * 2);
p.lineTo(xrelpos + px4step * 0.25, yrelpos - px4step * 2);
return p;
}
Code:
int[][] circleMinor = {{0,0},{10,0},{7,1},{11,2},{8,3},{12,4},{9,5},{13,0}};
for (int loop=type*-1;loop > 0;loop--) {
sign = makeMinorEs( posX + circleMinor[loop][1] * px4step, posY + circleMinor[loop][0] * px4step );
cof.fill(sign);
cof.draw(sign);
}
Zeichnung ohne Fill siehe Foto
Anhänge
Zuletzt bearbeitet: