如何使用 Three.js 绘制平行线?

2023-12-09

我对矩阵变换的概念很陌生,我尝试在正交方向上偏移一条线。我想到的是:

line.translate( offsetPixels,  new THREE.Vector3( 1, 1, 0 )  );

它沿着向量中定义的轴平移一条线。所以我的问题是如何定义向量中的轴以获得平行线?


也许我错了,但我看不到 THREE.Line 或其超类 THREE.Object3D 有一个名为“translate”的方法...当然,您可以创建自己的翻译函数,这不会太难。

function translate(object, offset, direction) {
    if (offset <= 0) return false;
    if (!(object instanceof THREE.Object3D)) return false;
    if (!(direction instanceof THREE.Vector3)) return false;

    direction.normalize();
    object.position.x += offset * direction.x;
    object.position.y += offset * direction.y;
    object.position.z += offset * direction.z;

    return true;
}

我编写的这个函数将转换从类 THREE.Object3D 派生的任何类型的对象。您可以像上面那样传递偏移量以及指定方向的 Vector3。

此调用会将 lineA 沿负 x 方向平移 30:

translate(lineA, 30, new THREE.Vector3(-1,0,0);

以下是相同的,因为方向向量是标准化的(除以它的长度):

translate(lineA, 30, new THREE.Vector3(-5,0,0);

现在使用这样的翻译函数将不允许您创建平行线,因为该函数只会移动已经创建的线。我已经创建了这个演示小提琴在这里这会创建两条平行线(如果线具有相同的斜率,则它们是平行的)。如果您取消注释翻译调用,它将把第二行移到第一行的上面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Three.js 绘制平行线? 的相关文章

  • 以一定角度遍历二维数组

    通常我们按行或列遍历数组 但这里我想以角度遍历它 我会尝试解释我的意思 因此 假设角度是 45 度 那么它会搜索为 0 0 then 0 1 1 0 then 0 2 1 1 2 0 等等 抱歉 无法上传图像 因为我是新用户 不允许这样做
  • iOS 绘制圆圈

    我正在尝试在我的 iOS 应用程序中创建下面的圆圈 我知道如何制作圆圈 但不完全确定如何沿着弧线获取点 它必须是代码而不是图像 下面也是我目前拥有的代码 void drawRect CGRect rect CGPoint point poi
  • 确定解决迷宫问题的最小线段数

    我有一个问题 我需要定义一个具有最少数量的顶点的多边形 该多边形与不透明的图像中的每个像素相交或包含每个像素 令 N 为图像中的像素数 我唯一的假设是图像的边界 孔 内不能包含透明像素 并且至少有两个像素是不透明的 举个例子 假设我有以下图
  • 如何从一组重叠的圆计算多边形集?

    这个问题是一些计算细节的扩展这个问题 https stackoverflow com questions 1667310 combined area of overlapping circles 假设有一组 可能重叠的 圆 并且希望计算这组
  • 黑色左/右三角形大小不同

    我使用黑色左指三角形 右左指三角形几何形状作为网站上的链接 并使用它们的 HTML 代码 和 9664 9654 由于某种原因 即使我在没有其他元素的空白页面上使用三角形 它们也不会以相同的大小显示 在 Chrome 上 向左指向的位置比向
  • 渲染 ThreeJS 应用程序第一帧时的性能问题

    目前 当我渲染以下内容时 我的 ThreeJS 应用程序的性能受到很大影响第一帧 它会导致 Edge 和 IE 11 浏览器冻结 5 秒 并弹出窗口指示 此窗口没有响应 这可能会吓到我的用户 使用 Chrome 的性能分析器 问题似乎来自几
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • 有没有办法在 JTS 中将自相交多边形转换为多重多边形?

    取无效多边形POLYGON 0 100 100 100 0 0 100 0 0 100 一个带有未声明交点的煮蛋定时器形状 许多说明说 JTS 可以使用以下命令创建此版本的有效版本 buffer method Geometry input
  • ThreeJS 中阴影的奇怪行为

    所以我有一个 ThreeJS 场景 并且添加了一些球体 多材质 我还添加了定向光 this light new THREE DirectionalLight 0xFFFFFF 1 this light position set 2 10 2
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo
  • WPF - 路径几何...有没有办法绑定数据属性?

    我有一个ControlTemplate作为 气泡 弹出窗口AdornerLayer给定的控制 它工作正常 但我需要能够计算它应该显示的位置 中间 底部 代替
  • Three20中的TTSpeechBubbleShape仅绘制“语音”三角形顶部和底部

    因此 我将 Three20 库用于 iPhone 应用程序 并希望将 TTSpeechBubbleShape 样式用于视图 但三角形似乎不想画在左边或右边 我在源代码中看到它有很多几何图形 并且想知道是否有人解决了这个问题或知道如何解决它
  • 如何使用三个JS导出然后导入场景?

    我有一个用三个 JS 和大量 Javascript 代码构建的复杂 3D 场景 我需要将此场景导出为一个文件 然后通过简单的 ThreeJS 场景播放器在我的网站上使用它 我尝试过 ObjectExporter 和 SceneExporte
  • 算法:找到圆中的峰值

    Given n排列成圆圈的整数显示了一种可以找到一个峰值的有效算法 峰值是不小于它旁边的两个数字的数字 一种方法是遍历所有整数并检查每个整数以查看它是否是峰值 这产生O n 时间 似乎应该有某种方法来分而治之 以提高效率 EDIT 好吧 基
  • ThreeJS 动画光色

    我制作了一个定向灯 我想随着时间的推移改变颜色 我正在阅读文档 http threejs org docs index html Reference Math Color 但仍然没有启动并运行 在初始化之前我声明变量 var rmapped
  • 从基本矩阵中查找单应矩阵

    我正在尝试计算单应性矩阵H给定一组对应关系和基本矩阵F 根据对极几何原理 我知道这可以通过对极线和对极线的叉积来完成F from 极点几何 http www cs unc edu marc tutorial node44 html e ij
  • 帮我用光线追踪器解决这个错误

    我不会针对这个问题发布任何代码 因为它需要太多的上下文 但我将从概念上解释我正在做什么 我正在构建一个使用仿射变换的简单光线追踪器 我的意思是 我将来自相机坐标的所有光线与通用形状相交 这些形状都具有关联的仿射变换 并且光线在与场景对象相交
  • 使用矩阵变换 Three.js 场景图

    我正在尝试将文件中的场景加载到 Three js 中 自定义格式 不是 Three js 支持的格式 这种特殊格式描述了一个场景图 其中树中的每个节点都有一个指定为 4x4 矩阵的变换 将其推送到 Three js 的过程如下所示 Yeah
  • 将 FBX 文件转换为 .gltf 后,模型非常小,为什么?

    问题 将 FBX 文件转换为 gltf 后 模型非常小 为什么 我尝试用以下方法缩放模型frontObject scale set 1000 1000 1000 但我收到以下错误 TypeError Cannot read property
  • 为什么环境光在此示例中不起作用?

    在以下示例中 环境光不起作用 一切都是黑色的 为什么会发生这种情况 我该如何解决它 如果我放聚光灯 它就可以工作 所以环境光一定有问题 但我遵循了文档 O

随机推荐

  • 高度:100% VS 最小高度:100%

    我用这个css设置一个 div 至最大高度 谁能给我一个一般性的答案 两者有什么区别height 100 and min height 100 这是 W3C 的解释 link The following algorithm describe
  • 使用扭矩稳定气垫船刚体直立

    我目前正在创建一款涉及悬停自行车的游戏 当自行车与物体碰撞时 它的角度会自然改变 我希望创建某种方法让它趋于 0 这是我尝试过的 if hoverbike rotation x 0 hoverbike rotation z 0 hoverb
  • Pandas-在保留列/索引值的同时向 DataFrame 添加缺失的日期?

    我有一个 pandas 数据框 其中包含日期 客户 商品以及购买的美元价值 date customer product amt 1 1 2017 tim apple 3 1 1 2017 jim melon 2 1 1 2017 tom a
  • 淘汰赛可排序绑定顺序

    这是一个问题的后续 KnockoutJS 可按字段对 observableArray 进行排序并进行条件排序 我还有两件事正在努力实现 首先 当嵌套列表项被拖动到另一个列表时 父级为空 我想删除父级 我通过创建一个 afterMove 函数
  • 何时使用MyISAM和InnoDB? [复制]

    这个问题在这里已经有答案了 MyISAM 的设计理念是 您的数据库被查询的次数远远多于其被更新的次数 因此它执行非常快的读取操作 如果您的读写 插入 更新 比率低于 15 那么最好使用 MyISAM InnoDB 使用行级锁定 具有提交 回
  • 嵌套的 For-Each 会变平吗?

    有一个对象数组 其中每个对象都有一个对象集合 其中每个对象都有一个字符串属性 当我进行嵌套迭代时 TheArray TheCollection TheProperty 看起来我最终得到的不是字符串数组的数组 而是一维字符串数组 这是设计使然
  • 正则表达式匹配最后一个字符

    我有以下几行 data text javascript base64 Ly8gSGVyZdsdsd 5 data text javascript base64 Ly8gSGVyZdsdsd 2 data text javascript ba
  • Django / vBulletin 单点登录

    在同一域上为 Django 项目和 vBulletin 板进行单点登录 SSO 的最简单方法是什么 我有一个现有的 vBulletin 用户数据库 我研究过 Django 的远程用户后端和 vBulletin 的vBSSO但我还没有找到完整
  • java中带单引号的SQL查询

    我有一个想要在 java 中运行的查询 SELECT md5 CONCAT md5 clear password salt 它让我的应用程序连接并使用与我的论坛相同的用户名 密码 它的工作但是当salt包含字符 它给出一个错误 You ha
  • 在 Flutter 中更改主图像尺寸而不触及占位符图像大小

    我有一个关于 flutter 中的图像和预加载的小问题 如何在不改变占位符大小的情况下更改图像覆盖的适合值 Widget primaryVideoImg img return Flex direction Axis horizontal c
  • 确定作为 n 的函数执行递增变量计数的语句的频率

    好吧 我是分析算法的新手 非常感谢任何可以分享如何解决此问题的有用提示 我试图确定 count 作为 n 的函数增加了多少次 我已经在 ide 中运行它 对于值 1 7 输出为 1 3 6 10 15 21 28 我只是不确定如何将其写为
  • 如何保存python IDLE的自定义首选项?

    我在不同的位置有几台计算机 虽然我没有在 IDLE 中编码 但它始终在后台运行 用于小型测试 调试和研究任务 我在家里配置了 IDLE 自定义突出显示 按键设置等 将我的设置保存到外部文件中并将这些设置安装到我正在使用的任何计算机上会非常方
  • 如何访问脚本组件内的 ssis 包变量

    如何访问我在数据流 gt 脚本组件 gt 我的 C 脚本和 SSIS 包中使用的 C 代码中的变量 我已经尝试过 但也不起作用 IDTSVariables100 varCollection null this VariableDispens
  • 如何使用printf显示off_t、nlink_t、size_t等特殊类型?

    在我的程序中 我统计他们想要的文件并将数据发送过去 统计数据的字段struct都是特殊类型 struct stat dev t st dev ID of device containing file ino t st ino inode n
  • python,从(1,n)中随机选择#k个数字,不包括列表中的数字

    对于给定的 except list 3 5 8 n 30 k 5 我想在 1 到 30 之间选择 5 k 个随机数 但我不应该在排除列表中选择数字 假设 except list n 可能很大 当不需要排除时 很容易得到k个随机样本 rand
  • CSS 链接边框样式不适用于 a:visited

    问题在于链接边框样式 我可以在悬停时更改它 但边框 visited不起作用 这是我所拥有的示例 a link color 536DFE text decoration none border bottom dashed 1px transi
  • WCF WSDL + 可空属性

    我有一个 WCF 服务扁平化 WSDL 另一端的消费者告诉我 nillable true 属性正在将它们连接起来 我尝试在服务合同中设置 EmitDefaultValue false 但我没有注意到行为有任何变化 诚然 我以前从未深入研究过
  • 如何在 UICollectionViewCell 中设置 UILabel

    我有一个带有 UIViewController 的应用程序 其中包含 UICollectionView IBOutlet UICollectionView 中的单元格是 MyCustomCell 并使用此方法设置其 UILabel void
  • .NET 的 RSS 解析器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 对于 NET 中的 RSS
  • 如何使用 Three.js 绘制平行线?

    我对矩阵变换的概念很陌生 我尝试在正交方向上偏移一条线 我想到的是 line translate offsetPixels new THREE Vector3 1 1 0 它沿着向量中定义的轴平移一条线 所以我的问题是如何定义向量中的轴以获