首页
学习
活动
专区
工具
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的平移值改变符号。这两个新矩阵以相反的顺序相乘以获得逆矩阵。

4K110

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

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

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

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

    6.5K11

    ChatGPT 总结的初中数学知识点汇总

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

    43010

    【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

    1K20

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

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

    96220

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

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

    1.5K70

    距离-视觉-惯性里程计:无激励的尺度可观测性(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。

    89450

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

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

    1.8K10

    理解单目相机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.7K10

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

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

    4K21

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

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

    2.3K20

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

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

    2.2K20

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

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

    1.4K30

    Android仿网易云 鲸云音效效果

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

    2.4K20

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

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

    87810

    基于 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.4K20

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

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

    5K23
    领券