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

如何在JavaFX中围绕一个点旋转一个三角形并获得这些点的值?

在JavaFX中围绕一个点旋转一个三角形并获得这些点的值,可以通过以下步骤实现:

  1. 创建一个JavaFX应用程序,并导入必要的类和库。
  2. 定义一个三角形的顶点坐标,可以使用javafx.scene.shape.Polygon类来表示三角形。
  3. 创建一个旋转变换对象,使用javafx.scene.transform.Rotate类来表示旋转变换。
  4. 将旋转变换对象应用到三角形上,使用javafx.scene.Node.getTransforms()方法获取三角形的变换列表,并使用javafx.collections.ObservableList.add()方法添加旋转变换。
  5. 设置旋转中心点,使用javafx.scene.transform.Rotate.setPivotX()javafx.scene.transform.Rotate.setPivotY()方法设置旋转中心点的坐标。
  6. 定义旋转角度,使用javafx.scene.transform.Rotate.setAngle()方法设置旋转角度。
  7. 获取旋转后的三角形顶点坐标,使用javafx.scene.Node.localToScene()方法将三角形的局部坐标转换为场景坐标。

下面是一个示例代码:

代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;

public class TriangleRotation extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建三角形的顶点坐标
        double[] points = {100, 100, 200, 200, 0, 200};

        // 创建三角形对象
        Polygon triangle = new Polygon(points);
        triangle.setFill(Color.TRANSPARENT);
        triangle.setStroke(Color.BLACK);

        // 创建旋转变换对象
        Rotate rotate = new Rotate();
        rotate.setPivotX(100); // 设置旋转中心点的X坐标
        rotate.setPivotY(100); // 设置旋转中心点的Y坐标
        rotate.setAngle(45); // 设置旋转角度

        // 将旋转变换应用到三角形上
        triangle.getTransforms().add(rotate);

        // 创建场景并添加三角形
        Group root = new Group(triangle);
        Scene scene = new Scene(root, 400, 400);

        // 显示场景
        primaryStage.setScene(scene);
        primaryStage.show();

        // 获取旋转后的三角形顶点坐标
        double[] rotatedPoints = triangle.localToScene(points);

        // 打印旋转后的三角形顶点坐标
        System.out.println("Rotated Points:");
        for (int i = 0; i < rotatedPoints.length; i += 2) {
            System.out.println("X: " + rotatedPoints[i] + ", Y: " + rotatedPoints[i + 1]);
        }
    }

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

这个示例代码演示了如何在JavaFX中围绕一个点旋转一个三角形,并获得旋转后的三角形顶点坐标。在代码中,我们使用Polygon类表示三角形,使用Rotate类表示旋转变换。通过设置旋转中心点和旋转角度,然后将旋转变换应用到三角形上,最后使用localToScene()方法获取旋转后的三角形顶点坐标。

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

相关·内容

第4章-变换-4.1-基础变换

4.1.2 旋转 旋转变换将向量(位置或方向)围绕通过原点给定轴旋转给定角度。像平移矩阵一样,它是一个刚体变换,即它保留了变换点之间距离,保留了偏手性(即,它永远不会导致左右交换边)。...对于每个 旋转矩阵 ,它围绕任何轴旋转 弧度,其迹(即矩阵对角线元素总和)是独立于轴常数,计算为[997]: image.png 旋转矩阵效果可以在第65页图4.4看到。...这也适用于任意数量这些变换级联。旋转矩阵还有另一种求逆方法: ,即绕同一轴向相反方向旋转。 示例:围绕一个旋转。假设我们要围绕z轴将对象旋转 弧度,旋转中心是某个 。...由于围绕旋转特性在于本身不受旋转影响,因此变换从平移对象开始,使 与原点重合,这是通过 完成。此后跟随实际旋转: 。最后,必须使用 将对象平移回其原始位置。...因此, 具有方程4.17矩阵外观: image.png 逆计算为 。因此,要计算逆,左上角3×3 矩阵被转置,T平移改变符号。这两个新矩阵以相反顺序相乘以获得逆矩阵。

3.9K110

玩转Processing生成艺术不可不知几个创作手法

在本篇文章,基本图元部分小菜就不展开说了,大家在用 processing 绘制时候,经常接触到这些图形。文章主要围绕方法论说起。 来吧,一起开启我们战斗之旅吧。 Color ?...----毕加索 色彩会使我们作品变得斑斓,也会给原本黑白灰画面注入生命力。通常我们可以用 random(255) 来随机获得一个RGBA通道来得到颜色。...于是给线条,上下进行错位,形成变化。 但还不够。靠近下方,靠近末尾,让错位幅度更大点。 你看,一个有趣作品就出来了。 例子2是一个经典例子。本来是规规矩矩方格子,一行一行。...Recursion 递归法 三角形中套三角形,一直递归绘制下去,直到一个终止条件,三角形高度小于某个。 在上面的基础上,运用重复法,加上一些变化。...柏林噪声函数(噪波函数)在 processing 一个王者级别的函数。非常牛X。噪波函数随机出来,相比多次 random() ,更具有连续性。 生成艺术,会有确定和不确定成分在里面。

2.7K40

在编程中发现数学之美——使用python和Processing绘制几何图形

使用rotate旋转对象 在几何旋转表示将一个物体围绕一个中心转动。Processingrotate函数围绕着原点旋转坐标系。它只接受一个参数,这个参数是旋转坐标系角度。角度单位是弧度。...:创建了一个t变量,将坐标系移动到我们想绘制三角形位置,旋转坐标系,绘制三角形,最后增加t。...三角形围绕着它一个端点旋转,因此三角形外边组成了一个圆。你可能也发现了,这个三角形一个直角三角形,它一个角度是90度,不是等边三角形。 我们需要绘制等边三角形,也就是说每个边边长相等。...还需要找到这个等边三角形中点,使三角形围绕着它中心旋转。要实现这些,我们需要确定等边三角形三个顶点坐标。想一想,在确定一个等边三角形中心之后,如何绘制这个等边三角形?...旋转相移 我们可以使用相移改变三角形旋转方式,使每个三角形旋转角度和它邻居稍有不同,给图形制造一种波浪效果。循环中每个三角形已经被赋予了一个,就是i。

5.8K11

ChatGPT 总结初中数学知识汇总

系数:项常数因子, 3x 3。 次数:项字母指数, 3x^2 2。 整式加法和减法 同类项:含有相同字母部分和次数项。 加法:合并同类项,系数相加。...坐标、中点、距离计算 坐标:用有序数对 (x, y) 表示一个点在平面直角坐标系位置,其中 x 为横坐标,y 为纵坐标。 中点:连接两线段中点,横、纵坐标分别取两坐标的平均值。...一元一次不等式解法 解法:根据不等式性质,将未知数取值范围表示出来,x > 3。 不等式组解法 解法:求解多个不等式交集或集,找出满足所有不等式范围。...HL判定法:如果两个直角三角形斜边和一个直角边分别相等,则这两个三角形全等。 第十二章 轴对称 轴对称概念与性质 轴对称:某个图形可以沿着一个旋转180度后与原图形重合。...第二十三章 旋转 旋转概念与性质 旋转围绕一个中心旋转图形操作。 性质:旋转中心、旋转角度、旋转后图形位置关系。

35110

【CSS3】CSS3 2D 转换 - rotate 旋转 ③ ( 使用 transfrom-origin 设置旋转中心 | 使用 方位词 百分比值 像素 设置旋转中心 )

一、使用 transfrom-origin 设置旋转中心 为 div 盒子模型 设置 transform: rotate 样式 , 可以使 盒子模型 围绕 中心 进行 旋转 , 代码如下 :...: all 1s; 盒子模型 , 除了围绕中心 旋转之外 , 还可以 设置 围绕 某个 进行旋转 , : 围绕 左下角 进行旋转 ; 使用 transfrom-origin 样式 , 可以设置...盒子模型 旋转中心 ; transfrom-origin 样式语法 : transfrom-origin: x y; x y 坐标之间 , 使用空格隔开 ; x y 坐标的 默认 是 中心 ,...也就是 ( 50% , 50% ) ; x y 坐标的 , 可以设置类型 如下 : 百分比 : 50% 像素 : 10px 方位名词 : 可以是 top / bottom / left / right...: 绕 25% 25% 位置 逆时针 旋转 45 度 ; 3、代码示例 - 使用像素设置旋转中心 使用方位词设置旋转中心 , 设置 0px 0px 位置 为 旋转中心 ; 设置 0px 0px

50520

ICRA 2021|用于LiDAR里程计和建图Poisson表面重建

我们使用一个旋转LiDAR传感器来重建环境,研究使用一个替代场景重建来建图和配准。场景重建至关重要,因为它用于配准传入扫描。...本文主要贡献是一种新型 LiDAR 里程计和建图系统,该系统建立在提供精确几何地图表面重建方法之上。我们将单个扫描聚合到一个局部云中,使用这些来重建场景三角形网格。...与这些方法相比,我们使用三角形网格而不是曲面或IMLS曲面将LiDAR扫描配准到一个稠密地图中。 从云中获得三角形网格一种常用技术是三维曲面重建[2]。...对于云配准,我们迭代地执行云与三角形网格数据关联,确定位姿增量,以最小化误差度量。 对于云之间数据关联,通过邻居搜索或投影[32]发现最近关联是一个常见选择。...数据关联步骤还可能导致错误对应,其中来自曲面的给定点与来自另一个曲面的网格相交点相关联。这种情况通常发生在光线没有击中任何靠近表面的地方,击中一个很远三角形时。

86820

【干货】Hinton最新 Capsule Networks 视频教程分享和PPT解读(附pdf下载)

为了简单起见,我只关注旋转参数,但在真实胶囊网络,激活向量可能有5, 10个维度或更多。 ? 实际上,实现这一一个好方法是首先应用一对卷积层,就像在常规卷积神经网络中一样。...这一次,它更有趣了:给定三角形旋转角度,它预测房子胶囊会检测到一个倒置房子,并且船胶囊会探测到一艘船旋转16°。这些位置与三角形旋转角度是一致。 ?...第二,通过查看激活路径,您可以轻松地查看部件层次结构,确切地知道哪个部分属于哪个对象(矩形属于小船或者三角形属于船等等)。...最后,按同意协议路由帮助解析那些有重叠对象拥挤场景(我们将在几个幻灯片中看到)。 但是首先,让我们看看协议是如何在胶囊网络实现。 ?...在这个例子,有两个姿态参数:一个代表旋转角度,另一个代表船大小。正如我前面提到,姿态参数可以捕获许多不同类型视觉特征,倾斜、厚度或精确定位。 ?

1.4K70

距离-视觉-惯性里程计:无激励尺度可观测性(ICRA2021)

VIO Observability Analysis 文献已经详细研究了具有未知 IMU 偏差 VIO 可观察性。在通用激励下,除了全局位置和围绕重力矢量旋转外,VIO 状态被发现是可观察。...使用 FAST 算法 [32] 检测图像视觉角特征,使用 Kanade-Lucas-Tomasi 算法 [33]、[34] 金字塔实现进行跟踪。...uri 是在时间 i 沿 LRF 光轴方向单位向量。Ii 是该轴与地形交点。F1、F2 和 F3 是 SLAM 特征,在图像空间中围绕 Ii 形成一个三角形。...Unobservable Directions 1) 通用运动 可以验证跨越全局位置向量或围绕重力向量旋转向量仍然属于 Mk 右零空间。...最后,我们建议读者参考我们视频材料,以获得具有大激励和良好视觉纹理序列其他比较结果。在这些最佳条件下,VIO 性能与 range-VIO 相当,最大位置误差为 40 cm。

81550

即将开源STD:用于3D位置识别的稳定三角形描述子

具体而言,我们贡献如下: 设计了一个三角形描述子,一个六维向量,由三条三角形长度和连接到每个三角形顶点相邻平面的法向量之间角度组成,描述子对旋转和平移完全不变,同时保持高度可区分性。...对于每个平面,我们创建一个图像,其中图像平面与平面重合,每个像素表示平面边界体素包含最大距离。然后选择一个,它5个像素像素最大∗5邻域作为关键(见图5(c))。...(c) 平面图像,其中每个像素表示边界体素点到平面的最大距离(以厘米为单位)。如果一个点在其5*5邻域中具有最大像素,它将被视为关键(红色)。...所有数据都是在城市环境中使用具有不同扫描线机械旋转激光雷达收集。我们将我们方法与其他两个全局描述符进行比较:Scan Context 和M2DP。我们每10帧将这些数据集累加为一个关键帧。...总结 本文提出了一种基于三角形全局描述子STD,这是一个基于平面检测和边界投影高效关键提取算法,用于提取具有几何特征关键这些关键与其相邻形成三角形描述符,这种组合大大提高了描述子旋转和平移不变性

1.5K10

理解单目相机3D几何特性

通过上图,我们可以了解到,相机坐标系x、y、z位置和相机焦距(fx、fy),可以使用所描述公式计算图像相应u、v像素,这些公式类似三角形公式缩放,其中焦距是每台摄像机固有常数参数,可以通过摄像机校准来确定...摄像机投影矩阵 上图中所示关系由相机投影矩阵公式或相机矩阵P更全面定义,摄像机矩阵P解释和推导如下所示: 在三维世界中选择一个参考点,将其标记为原点,定义世界坐标系轴,将世界坐标系旋转平移到相机坐标系下...这里b[x,y,z,1]有助于用[R | t]进行积,以获得3D空间中该相机坐标,R表示旋转矩阵,t表示平移矩阵,该矩阵首先将旋转到相机坐标系方向,然后将其平移到相机坐标系,[R | t]也称为相机外参矩阵...相机坐标系定义一个可以用K(摄像机矩阵)投影到图像平面上,K是一个内参矩阵,它采用fx和fy,将相机坐标系x和y缩放为图像平面的u和v,此外,K还涉及sx和sy,它们将图像原点从图像中心转换到左上角图像坐标系下...给定一个以一定角度倾斜摄像机拍摄图像,首先获取摄像机坐标,然后围绕摄像机坐标x轴旋转相机坐标轴,使其面向垂直于地面的方向,然后将旋转摄像机坐标重新投影到图像平面上。

1.6K10

基于消失点相机自标定(1)

现在可以在图像平面上进行线段平移,方法是将其第一个设置在其图像PI1m上计算第二个位置。因此,平移后线段由P′1和P′2表示: ? 由此得到△p1′p2与图中两个三角形p1′Q平行。...为了计算它们,可以通过分离比例因子λi使用无穷远处齐次与平移向量相乘来重新排列方程: ? 将两边方程乘以(KR)T,考虑旋转矩阵正交性约束,得到: ? 这里定义Q矩阵为 ?...在没有场景附加信息情况下,从单个视图获得平移将达到比例,其中λi具有任意。如果有附加信息,线段长度或场景中点坐标,则可以精确地提取平移矢量。...平移向量分量可以通过叠加多对图像和场景点方程(26)来计算,使用奇异分解来求解得到。寻找三个消失点需要至少六个,放置在场景中三个相互正交轴上,这些也可以用于计算平移向量。...实验结果 为了研究所实现方法对噪声鲁棒性,我们进行了一系列实验。在合成环境工作优点是可以获得绝对地面真实

3.6K21

视觉进阶 | Numpy和OpenCV图像几何变换

在本文中,我将向你介绍一些变换,以及如何在Numpy和OpenCV执行这些变换。特别是,我将关注二维仿射变换。你需要是一些基本线性代数知识。...示例:围绕图像中心旋转、缩放和平移 让我们看一个变换,我们希望放大2倍,围绕图像中心位置旋转45度。 这可以通过应用以下复合矩阵来实现。...左手坐标系旋转是通过交换符号来实现。 由于围绕原点旋转,我们首先将中心平移到原点,然后再进行旋转和缩放 然后将变换回图像平面。 将变换点舍入为整数以表示离散像素。...此函数使用角度围绕点中心旋转图像,使用比例缩放图像。...许多先进计算机视觉,使用视觉里程计和多视图合成slam,都依赖于最初理解变换。我希望你能更好地理解这些公式是如何在编写和使用

2.2K20

模型矩阵、视图矩阵、投影矩阵

每个函数都会产生一个矩阵,右乘当前矩阵。...模型矩阵之所以称之为「模型矩阵」,是因为一个模型里所有的顶点往往共享同一个变换,抛在空中一个木块,运转机器一个齿轮。...考虑一个物体绕任意轴(而不是三个坐标轴)旋转:绕着过顶点(x, y, z)方向为(a, b, c)轴,旋转角度θ。...模型视图矩阵作用是:乘以一个坐标,获得一个坐标,获得坐标表示:点在世界里变换,观察者也变换后,相对于观察者位置。...最后,根据投影矩阵×视图矩阵×模型矩阵求出模型视图投影矩阵,顶点坐标乘以该矩阵就直接获得其在规范立方体坐标了。这个矩阵通常作为一个整体出现在着色器

1.9K20

数学之美——用Wolfram语言制作3D打印珠宝

创作涉及到为Mobius带子制作一个自定义数学函数(ParametricPlot3D在这里很有帮助),并在其边界上仔细地选择,使三角形美观。...我一个新作品是这个基于阿波罗圆包装数学系列。这样排列开始时有四个圆,它们都在一个上互相接触(外圈和三个内圈)。其余圆是通过去掉四个圆一个找到一个与其他圆相触替代圆来生成。...圆圈替换过程在Mathematica自动进行,直到所有大于给定截止圆圈都被包括在内。 有时候,我遇到了一个似乎太有趣概念,不能不做。...这些圆柱形耳环是根据数学函数图形,抛物线、指数函数和锯齿函数,围绕中心轴旋转加号(+)形状而制作。 美学灵感一个来源是分形数学。...斐波那契雪花吊坠定义Voronoi图位于斐波那契螺旋线上。

1.3K30

Android仿网易云 鲸云音效效果

具体思路 首先自定义布局是了解,可能会用到surfaceView去绘制,整个动画可以分为四个部分,第一个旋转图片,这个好说;第二个是运动并且透明度渐变三角形,这个画画也简单;第三个是根据音乐变化而变化一个曲线吧.../p/b037249e6d31 我们先清空画布,然后可以随机生成一些三角形,保存所有生成三角形一个集合里面,然后设定一个速度,根据每个三角形方向来计算距离上一次刷新移动到了哪个位置,通过位置计算与中心距离来设置透明度...里面实现,这个应该三角形出现可以会自然一,其他解决办法倒是暂时没想到 优化 为了让三角形出现自然一,可以把Imageview旋转在surfaceView里面实现,但是好像不好做,因为还得裁剪图片和控制旋转...,获取颜色应该提前获取 开始画线 仔细看了一下,先画围绕这个圆画很多点,隔一段一个,然后把用曲线圈起来就ok了,动时候就是设置一个上下移动距离,一个变成两个,两个先连线,然后同一侧重新连成曲线...这样的话,那是不是我把它绕圆一圈,然后在按相反方向绕一圈,同样跳动两个连线,然后随便画画曲线是不是就ok啦;做完就发现里面的太大了,都看不出来是个圆了,那就都减去一高度什么,调整一下大小;然后这次就先画一个三次贝塞尔曲线吧

2.3K20

一种使用工业机械臂稳定规划抓取 3D 可变形物体方法

这些精确估计将通过考虑新抓握指标和优化机械手围绕物体预抓握策略来保证物体静态平衡。...这些接触力保证了物体-手系统平衡(通过模拟验证)。因此,物体可以从桌子上抬起没有任何滑动风险,可以稳健地操纵。在接下来部分,将详细描述这些步骤,通过对可变形物体进行真实取放实验进行验证。...因此,每个三指抓握都可以用一个来表征,该表示它与等边三角形相似性。我们建议一种基于几何标准算法来找到这种等边抓取。该算法首先通过扫描属于接触面 点来确定所有可能抓取三角形集合。...然后,使用Q1标准,把这些三角形角度(alpha、beta 和 lambda) 和(即,等边三角形角度)进行比较,以便选择最接近等边三角形部分: 为了评估三角形角度,我们使用由区间 [0,...第一步包括调整手方向,使 TCP(工具中心,沿垂直于手掌轴定义)与 抓取三角形中心 重合。第二步涉及手指 IK 分辨率,以估计关节以达到初始抓取三角形三个抓取(、和 )。

77710

基于 HTML5 WebGL 自定义 3D 摄像头监控模型

在监控摄像机数量不断庞大同时,在监控系统面临着严峻现状问题:海量视频分散、孤立、视角不完整、位置不明确等问题,始终围绕着使用者。...tag 标签作为模型名称,tag 标签在 HT 中用于唯一标识一个图元,用户可以自定义 tag 。...getCenter 方法是用于获取 3d 场景中点 A 绕着 B 旋转 angle 角度之后得到 A 在 3d 场景位置,方法采用了 HT 封装 ht.Math 下面的方法,以下为代码:...// pointA 为 pointB 围绕旋转 // pointB 为需要旋转 // r3 为旋转角度数组 [xAngle, yAngle, zAngle] 为绕着 x, y, z 轴分别旋转角度...面板每个摄像头都有一个模块来呈现当前监控图像,其实这个地方也是一个 canvas,该 canvas 与场景锥体前面的监控图像是同一个 canvas,每一个摄像头都有一个自己 canvas 用来保存当前摄像头实时监控画面

1.3K20

基础渲染系列(一)图形学基石——矩阵

围绕该轴旋转就像旋转一个轮子。 由于Unity使用左手坐标系,因此在Z轴正方向观看时,正向旋转会使车轮逆时针旋转。 ? (绕着Z轴2D旋转一个旋转时会发生什么变化呢?...这会导致一个4×4矩阵和一个4D。 ? 因此,我们必须使用4 x 4转换矩阵。 这意味着缩放和旋转矩阵会获得额外行和列,其中右下角数字为0,而数字为1。...如果其为0,则偏移量将被忽略,但缩放和旋转仍会发生。 可以缩放和旋转但不能移动东西。那不是,而是向量,代表一个方向。 所以 ? 代表一个,而 ? 表示向量。...因此,要获得欧几里得点(实际3D),请将每个坐标除以第四个坐标,然后将其丢弃。 ? 当然,当第四个坐标为0时,这是行不通这些被定义为无限远。这就是为什么它是表现为方向。...但是,我们不会使用该方法,因为有一些有用转换会改变底部行。 5 投影矩阵 到目前为止,我们一直在将从3D一个位置转换为3D空间中一个位置。但是这些最终如何在2D显示器上绘制呢?

4.8K23
领券