blu*_*xel 6 java javafx javafx-2 javafx-8
我试图找到旋转LinearGradient嵌套到Rectangle对象中的对象的方法,比如说:
Rectangle rect = new Rectangle(0, 0, 200, 200);
LinearGradient lg = new LinearGradient(0, 0, 100, 0, false, CycleMethod.REPEAT, new Stop[] {
new Stop(0, Color.BLACK);
new Stop(0.5, Color.WHITE);
new Stop(1, Color.BLACK);
});
rect.setFill(lg);
Run Code Online (Sandbox Code Playgroud)

现在,我尝试旋转此lg对象,例如向左旋转45度,但不旋转整个对象rect.有没有办法实现这一目标?
Mar*_*o13 13
给予LinearGradient构造函数的第一个参数分别是渐变轴的起点和终点的坐标.这意味着只需通过适当旋转的轴即可实现"旋转"渐变.
在最简单的形式中,对于您描述的示例,您可以使用以下模式:
double angleInRadians = Math.toRadians(45);
double length = 100;
double endX = Math.cos(angleInRadians) * length;
double endY = Math.sin(angleInRadians) * length;
LinearGradient lg = new LinearGradient(0, 0, endX, endY, ...);
Run Code Online (Sandbox Code Playgroud)
这将导致旋转45度的渐变.
此处的固定值将影响渐变的最终外观以及其他参数.参考您的示例,此渐变具有与之前相同的"波长"(即100),并且在左上角以相同的颜色开始(Color.BLACK即将在坐标处(0,0)).
| 归档时间: |
|
| 查看次数: |
2616 次 |
| 最近记录: |