首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaFX如何在不改变线宽的情况下缩放路径的坐标?

JavaFX是一种用于构建富客户端应用程序的Java库。在JavaFX中,要在不改变线宽的情况下缩放路径的坐标,可以使用Scale变换来实现。

Scale变换是JavaFX中的一种变换类型,它可以应用于节点或场景图形,以实现缩放效果。通过设置Scale变换的xy属性,可以控制节点或场景图形在水平和垂直方向上的缩放比例。

以下是实现在不改变线宽的情况下缩放路径坐标的步骤:

  1. 创建一个Path对象,用于表示路径。
  2. 创建一个Scale对象,并设置xy属性为所需的缩放比例。例如,设置xy为2.0表示将路径放大两倍。
  3. Scale对象应用于Path对象的transforms属性,以实现缩放效果。

下面是一个示例代码:

代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.scene.shape.QuadCurveTo;
import javafx.scene.transform.Scale;
import javafx.stage.Stage;

public class PathScalingExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建路径
        Path path = new Path();
        path.setStrokeWidth(2); // 设置线宽
        path.setStroke(Color.BLACK); // 设置线条颜色

        // 添加路径的起始点和曲线段
        path.getElements().add(new MoveTo(50, 50));
        path.getElements().add(new QuadCurveTo(150, 150, 250, 50));

        // 创建缩放变换
        Scale scale = new Scale();
        scale.setX(2.0); // 设置水平缩放比例
        scale.setY(2.0); // 设置垂直缩放比例

        // 应用缩放变换到路径
        path.getTransforms().add(scale);

        // 创建场景
        Group root = new Group(path);
        Scene scene = new Scene(root, 300, 100);

        // 设置舞台
        primaryStage.setTitle("Path Scaling Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在上面的示例中,我们创建了一个路径,设置了线宽和线条颜色,并添加了起始点和曲线段。然后,我们创建了一个Scale对象,并将其应用于路径的变换属性。最后,我们将路径添加到场景中,并显示舞台。

这样,路径将以指定的缩放比例进行缩放,而线宽将保持不变。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WebGL 单通道wireframe渲染

重心坐标系 要确定三角形,可以使用重心坐标系。...不过在实际图形渲染中,边宽度不可能是0,而应该是一个大于0值,所以一般可以指定一个要绘制线宽width,如果任何一个点重心坐标(x,y,z)中的人一个分量值小于这个线宽width,可以认为在边上...这是因为,之前判断是基于三角形表面的,通过光栅化之后,由于线条角度等原因,最终在屏幕上面的宽度就变得不一致了。 使用fwidth方法 要线宽判断基于屏幕,需要使用到一个方法fwidth。...: #extension GL_OES_standard_derivatives : enable 然后通过fwidth函数,把vBarycentric缩放到 vBarycentric在屏幕变化范围之内...在获取了基于屏幕像素空间重心坐标a3之后,可以通过通过该变量来进行判断,并绘制出指定宽度线框: gl_FragColor.rgb = mix(vec3(0.0,0.0,0.0), vec3(1.0

79520

R语言进阶之图形参数

, col.lab="red") ‍‍ 关于如何在不同绘图函数中设置绘图参数,请参见R语言入门系列。‍‍‍ ‍...1.5倍,而0.5则表示缩小为默认值0.5倍 cex.axis 指定坐标轴刻度文字缩放倍数 cex.lab 指定坐标轴标签缩放倍数 cex.main 指定标题缩放倍数 cex.sub 指定副标题缩放倍数...线条 ‍ 关于线条相关选项如下表: 选项 描述 lty 指定线条形状,如下图所示 lwd 指定线条宽度,2表示线宽是默认值两倍 ? ‍‍‍‍ 5....颜色 ‍‍ 下表列出与颜色相关选项: ‍‍ ‍‍‍ ‍‍ ‍ ‍‍‍‍选项‍ 描述 col 默认颜色参数 col.axis 指定坐标轴刻度颜色 col.lab 指定坐标轴标签颜色 col.main...font.axis 指定坐标轴刻度字体 font.lab 指定坐标轴标签字体 font.main 指定标题字体 font.sub 指定副标题字体 ps 字体点尺寸 (大约为1/72英尺),文本尺寸

1.4K30

JavaFX入门(四):JavaFX布局(一)

布局控件我们在界面上一般是看不到,它一个容器用于放置其它可视界面元素控件。(JavaFX在线API文档:JavaFX8 API Online) JavaFX布局控件类图如下: ?...Pane Pane是其它布局控件类父类,我们可以将Pane看成一个绝对布局控件,当我们将某个控件放置在Pane当中时候,我们需要指定它位置坐标(layoutX和layoutY)。...当我们将一个控件拖拽到Pane中时候,会自动生成layoutX和layoutY坐标。如图是使用Pane为父容器设计一个简单界面: ? FXML代码如下: <?...GridPane GridPane有点像HTML中Table布局,属于比较灵活布局方式。默认情况下,控件均匀分布在Grid或者说Table中。但是我们可以指定一个控件所占行列,让其跨行和列分布。...当我们调整窗体大小时候,锚定位置是不会。 ? 生成FXML代码如下: <?

11.5K41

你都知道么?Android中21种drawable标签大全

旋转中心Y坐标 android:visible 设置初始可见性状态,默认为false 子标签 如果不设置drawable属性,也可以定义drawable类型子标签,shape等 以下是android5.0...它属性: android:name android:rotation 旋转 android:pivotX 旋转和缩放中心点X轴坐标。取值基于viewport视图坐标系,不能使用百分比。...android:pivotY 旋转和缩放中心点Y轴坐标。取值基于viewport视图坐标系,不能使用百分比。 android:scaleX 在X轴上缩放比例,最先应用到图形上。...android:scaleY 在Y轴上缩放比例,最先应用到图形上。 android:translateX 在X轴平移距离,取值基于viewport视图坐标系。最后应用到图形上。...android:strokeWidth 指定路径线条宽度,基于viewport视图坐标系 android:strokeAlpha 指定路径线条透明度 android:fillAlpha 指定填充区域透明度

2.3K20

自学cad 零基础_零基础自学吉他步骤

4.快速缩放平移视图 命令:zoom ①全部缩放 ②范围缩放 ③比例缩放 ④窗口缩放 ⑤实时缩放 标准工具栏中“实时平移”按钮 视图-缩放-范围   5.设备捕捉和栅格 ①捕捉 隐含分布在屏幕上栅格点...②对象追踪 使用对象捕捉追踪,可以沿着基于对象捕捉点对齐路径进行追踪。默认情况下,对象捕捉追踪将设置为正交。...对齐路径将显示在始于已获取对象点 0 度、90 度、180 度和 270 度方向上,但是,可以使用极轴追踪角代替。...可延伸对象必须是有端点对象,直线、多线等,而不能是无端点对象,圆、参照线等。 首先是指定延伸边界 再是选择要延伸对象   ④修剪图形: 可以将选定对象在指定边界一侧部分剪切掉。...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

3K20

CAD复习资料

有缘学习更多+谓ygd3076或关注桃报:奉献教育(店铺)     ⑶线宽:在“图层特性管理器”对话框中单击线宽特性图标,在打开线宽”对话框中即可设置图层线宽特性,在该对话框中选中所需线宽,单击确定即可...先不动图比例,先画一个图框,A4或A3,输入SC,回车,然后选取原本画图框左下角点鼠标左键,然后按比例数字,100,然后把画好原图放入图框,大了就返回再输入少一点数值。...图层颜色、线型、线宽与实体颜色、线型、线宽是一个概念吗?...通常情况下以前点为基点 @1<a  ZH4 二维图形绘制和编辑 2 ....什么是尺寸关联性 在缺省情况下,Auto CAD 尺寸是一个整体,即尺寸线、尺寸界限、尺寸箭头和尺寸文本是不可分离,可以把它们堪称以是图块。

6.3K01

Android-2D绘图

Paint:画笔,作用于画布上,用来设置我们绘制图案一些参数,线条宽度(粗细),颜色等。常用设置有: setetAntiAlias: 设置画笔锯齿效果。...startY:起始端点Y坐标。 stopX:终止端点X坐标。 stopY:终止端点Y坐标。 paint:绘制直线所使用画笔。 【实例演示】下面通过代码来演示如何在画布上绘制直线。...cy:圆心y坐标。 radius:圆半径。 paint:绘制时所使用画笔。 【实例演示】下面通过代码来演示如何在画布上绘制圆形。...接着设置画笔线宽以及空心效果,这样将绘制出空心圆形。最后,调用drawCircle方法绘制了多个圆形,坐标和半径都在不断变化。 ?...接着设置画笔线宽以及空心效果。然后,定义一个RectF对象,并设置了其坐标,调用drawArc方法绘制第一个圆弧,这里设置不显示半径连线。

5.1K20

干货 | 用uni-app制作迷你PS小程序

3、核心代码 3-1、文字/图片编辑模块 文字/图片编辑模块主要是实现移动/缩放功能,其他附带属于甜品, 由于两个模块功能类似,该篇仅讲解图片编辑模块。...建议1~5 ctx: null, x0: 0, //初始横坐标或上一段touchmove事件中触摸点坐标 y0: 0, //初始纵坐标或上一段touchmove...: 0, //动态线宽 keenness: 5, //油墨程度 建议0~5 k: 0.3, //油墨因子,即每次绘制线条时线宽变化程度 } }, onReady...,记得获取临时路径。...px2rpx() { //当转换参数只有一个时直接返回数值 //当不为一个时返回数组,然后用spread语法将其展开为几个参数 //Math.floor()是为了防止在安卓机上造成数据紊乱

1.3K20

CSS总结

-方向:线宽 线型 颜色(线型常用:solid、dashed) 设置某一元素四条边框简捷方式[仅限于四条边框属性完全相同] border:线宽 线型 颜色 七、CSS控制背景   1.语法:background...[center left right] (水平位置)center[left top right] bottom[left center right],x坐标,y坐标[第一个值是水平位置,第二个值是垂直位置...,左上角是0 0 ,单位是像素(0px,0px)] 背景图像依附方式 background-attachment:[scroll ,fixed]     注:背景图像,默认情况下是进行水平和垂直位置上平铺...:只有IE浏览器支持,是缩放比例     功能:设置或检索对象缩放比例     语法:Zoom:Normal:默认值,使用对象实际尺寸           Number:百分数|无符号浮点实数,浮点实数为...3.cursor:用来改变鼠标的样式 可以自己定义鼠标的图像,格式为:style="cursor:url(图片路径及名称)"。

2.1K10

Virtuoso版图小技巧7(连载中...)

1、Bus线直角45度角 菜单栏Edit—Wiring—Wire to 45,如下视频; 02 2、添加virtuoso内置logo工具 在.cdsinit文件中写入如下代码: envSetVal...("layout" "enablePGTextAndMaskLogo" 'boolean t) 或在.cdsenv里写如下代码: layout enablePGTextAndMaskLogo boolean...生成logo会以cell 形式出现。 (点击蓝色字体查看) 03 3、导出Pad坐标 打开对应layout文件,菜单栏Tools—Pad Opening Info......,相关说明如下图: 点击Apply,可以看到相关pad坐标已导出。 Tips:默认reporting路径是没有写权限,请将路径更改为自己路径下,不然可能会出现坐标不改情况。...04 4、器件翻转(Flip)和旋转(Rotate) 在Virtuoso中,默认翻转和旋转都是以选中objects组合中心去执行相关命令,按如下图设置可以让选中objects以各自中心去执行相关命令

66431

Echarts数据可视化全解注释

type:"solid", //坐标轴线线类型,solid,dashed,dotted width:1, //坐标轴线线宽...是指一个完整图表,折线图,饼图等“基本”图表类型或由基本图表组合而成“混搭”图表,可能包括坐标轴、图例等 axis 直角坐标系中一个坐标轴,坐标轴可分为类目轴和数值轴 xAxis...,辅助功能,添加标线,框选缩放等 tooltip 气泡提示框,常用于展现更详细数据 timeline 时间轴,常用于展现同一组数据在时间维度上多份数据 series...支持svg扩展类地图应用,室内地图、运动场、物件构造等。...同 CSS cursor。 barGap:"30%", //柱间距离,可设固定值( 20)或者百分比( '30%',表示柱子宽度 30%)。

10.9K40

08: 绘图功能

,提前在此说明一下: img:要绘制形状图片 color:绘制颜色 彩色图就传入BGR一组值,蓝色就是(255,0,0) 灰度图,传入一个灰度值就行 thickness:线宽,默认为1;对于矩形...: # 创建一副黑色图片 img = np.zeros((512, 512, 3), np.uint8) # 画一条线宽为5蓝色直线,参数2:起点,参数3:终点 cv2.line(img, (0,...画矩形 画矩形需要知道左上角和右下角坐标: # 画一个绿色边框矩形,参数2:左上角坐标,参数3:右下角坐标 cv2.rectangle(img, (384, 0), (510, 128), (0,...255, 0), 3)Copy to clipboardErrorCopied 画圆 画圆需要指定圆心和半径,注意下面的例子中线宽=-1代表填充: # 画一个填充红色圆,参数2:圆心坐标,参数3:半径...,同样请对照后面的代码理解这几个参数: 参数2:要添加文本 参数3:文字起始坐标(左下角为起点) 参数4:字体 参数5:文字大小(缩放比例) # 添加文字 font = cv2.FONT_HERSHEY_SIMPLEX

73230

Canvas学习笔记,记录使用过程中遇到一些问题

2022-11-07 1.反向绘制 fill(),方法用于填充已有的闭合路径,假设有一个如下图路径,默认情况下圆和方形都会被填充,最后效果就是一个黑色方形; demo 通过fillRule参数...,可以指定填充算法,决定点是在路径内还是在路径外。...默认旋转是通过改变坐标刻度实现(矩阵),所以缩放后中心点不会在原来地方; /* 倍数 */ let scaleRadio=1.5 /*计算方形中心点 */ let rectCenterPoint...屏幕坐标换算到画布上需要乘以放大倍数。 2.图形选中 2.1 范围判断 以正方形为例,正常情况下可通过如下算法去判断图形是否被点击(点击point,图形rect)。...2.2 isPointInPath 不管是方形、图片、还是其他,描绘一个相同路径(位移、旋转、缩放),都可以进行如下判断 context.beginPath(); context.rect(x, y

91921

Flutter 绘制探索 | 箭头端点设计

这就是对复杂场景进行分离,将相对独立生产对象独立出来,这样能够简化场景,更专注于做一件事。就像本文,我只想专注做一件事,就是如何在一块矩形区域内,来创建各种各样箭头路径。...这就像是一个坐标,一个参考线,能给我们一些 安全感 。 这个背景绘制代码如下所示,其实就是一些最基本路径操作而已。...这看着比较简单,但想要获取对应路径,还是需要一些处理技巧。 ---- 实现效果图如下,代码是通过对路径移动实现。其中比较困难是:对线宽长度垂线数据计算。...我们可以这个 装饰者模式 ,通过包裹一层,来达到增加特定功能目的。 ---- 解决空心类型方案是 缩放 + 裁剪 。下图是对基本三角分析,核心就是基于线宽,计算出缩放比例。...这是一个非常精细计算过程,主要是确定内层路径端点偏移量 offsetX 。将缩放变换中心移动到如下红点处,进行缩放变换。

69140

Day 3 学习Canvas这一篇文章就够了

所以图中蓝色方形左上角坐标为距离左边(X轴)x像素,距离上边(Y轴)y像素(坐标为(x,y))。 ​ 后面我们会涉及到坐标原点平移、网格旋转以及缩放等。 ?...下面是需要用到方法: beginPath() 新建一条路径路径一旦创建成功,图形绘制命令被指向到路径上生成路径 moveTo(x, y) 把画笔移动到指定坐标...相当于设置路径起始点坐标。...贝塞尔曲线是计算机图形学中相当重要参数曲线,在一些比较成熟位图软件中也有贝塞尔曲线工具PhotoShop等。...默认情况下,canvas 1 单位就是 1 个像素。举例说,如果我们设置缩放因子是 0.5,1 个单位就变成对应 0.5 个像素,这样绘制出来形状就会是原先一半。

98420

JavaFX+Jfoenix 学习笔记(四)–MenuBar菜单栏

{ // (如果需要的话)定位横纵坐标,避免太靠边上遮盖菜单栏,,这两行如果不屑,一般电脑默认是居中屏幕显示,但在有些电脑会跑偏 // stage.setX(0);stage.setY...Scene scene = new Scene(borderPane, 400, 300); // 样式文件最好在Scene中引入,这样其他子组件就都可以使用了(哲理注意替换斜杠\,不能会报错找不到路径...)必不可少 */ @Override public void start(Stage stage) throws Exception { // (如果需要的话)定位横纵坐标,避免太靠边上遮盖菜单栏,,...Scene scene = new Scene(borderPane, 400, 300); // 样式文件最好在Scene中引入,这样其他子组件就都可以使用了(哲理注意替换斜杠\,不能会报错找不到路径...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.5K20
领券