Als ein Experiment habe ich versucht, dasselbe auf einem Canvas zu tun. Das ist, was ich kam mit, die Verwendung eines RadialGradient machen und die Funktion GraphicsContext.fillArc:
/**
*
* @param x Coordinate x of the centre of the arc
* @param y Coordinate y of the centre of the arc
* @param outer Outer radius of the arc
* @param innerPercentage Inner radius of the arc, from 0 to 1 (as percentage)
* @param arcStartAngle Start angle of the arc, in degrees
* @param arcExtent Extent of the arc, in degrees
*/
private void drawSemiCircle(float x, float y, float outer, float innerPercentage, float arcStartAngle, float arcExtent) {
RadialGradient rg = new RadialGradient(
0,
0,
x,
y,
outer,
false,
CycleMethod.NO_CYCLE,
new Stop((innerPercentage + (.0 * innerPercentage)), Color.TRANSPARENT),
new Stop((innerPercentage + (.1 * innerPercentage)), Color.RED),
new Stop((innerPercentage + (.6 * innerPercentage)), Color.YELLOW),
new Stop((innerPercentage + (1 * innerPercentage)), Color.GREEN)
);
gc.setFill(rg);
gc.fillArc(
x - outer,
y - outer,
outer * 2,
outer * 2,
arcStartAngle,
arcExtent,
ArcType.ROUND
);
}
Kernpunkte sind hier der Bogentyp als ArcType.ROUND und die Verwendung von Color.TRANSPARENT als die ersten Farbe.
drawSemiCircle(100, 100, 100, .5f, -45, 270);
eine perfekte Lösung, aber es funktionierte für mich ist es nicht:
Dann kann es etwas entlang der Linie verwendet werden.
Jahr, perfekt! : D Es ist genau das, was ich brauche ^^ Vielen Dank! – AwaX
Wissen Sie, ob es eine einfache Möglichkeit gibt, den Drehpunkt eines Pfades zu ändern? – AwaX
@AwaX path.setRotate (45); –