You need to enable JavaScript to run this app. 如何提取ONCURVE、ONSURFACE类型点的XYZ坐标并修改点位置
优惠活动
大模型
产品
解决方案
定价
更多

如何提取ONCURVE、ONSURFACE类型点的XYZ坐标并修改点位置

点坐标读取与位置调整实现方案

坐标提取逻辑

三类点的取值逻辑如下:

  • 坐标定义类型点:直接读取点内置的X/Y/Z属性值,填入用户窗体对应的三个文本框即可,以RhinoCommon API为例,取值代码为double x = pointObj.Location.X,Y、Z取值逻辑相同。
  • ONCURVE类型点:这类点绑定在曲线上,本身仅存储所属曲线引用和曲线参数t,无直接存储的固定坐标。你需要先获取点绑定的曲线实例,调用曲线的PointAt(t)方法计算得到当前的三维坐标值,再写入文本框。
  • ONSURFACE类型点:这类点绑定在曲面上,本身仅存储所属曲面引用和曲面UV参数,无直接存储的固定坐标。你需要先获取点绑定的曲面实例,调用曲面的PointAt(u, v)方法计算得到实时三维坐标值,再写入文本框。

坐标修改调整点位置逻辑

给用户窗体的三个坐标文本框添加值变更监听事件,触发时按点类型做对应处理:

  • 坐标定义类型点:将三个文本框输入的数值转换为浮点类型,构造新的三维坐标对象直接替换点的原有坐标属性,即可完成位置更新。
  • ONCURVE类型点:将用户输入的新坐标转为目标三维点,调用绑定曲线的ClosestPoint()方法,计算出曲线上离目标点最近位置对应的参数t,替换点的原有t参数即可。调整后的点会始终保持在所属曲线上,不会脱离曲线约束。
  • ONSURFACE类型点:将用户输入的新坐标转为目标三维点,调用绑定曲面的ClosestPoint()方法,计算出曲面上离目标点最近位置对应的UV参数,替换点的原有UV参数即可。调整后的点会始终保持在所属曲面上,不会脱离曲面约束。

内容的提问来源于stack exchange,提问作者user228502

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 09:57:02