给定两个点和两个向量,找到交点[重复]

2023-12-08

可能的重复:
如何检测两条线段相交的位置?

给定两点a and b加两个向量v and u我想找到第三点c,它是交点,如下所示:

vector2 intersection(vector2 a, vector2 v, vector2 b, vector2 u)
{
    float r, s;

    a + r * v = b + s * u;
    r * v - s * u = b - a

    r * v.x - s * u.x = b.x - a.x
    r * v.y - s * u.y = b.y - a.y
}

除了使用高斯消元法之外还有其他方法来求解这个系统吗?或者这是处理这个问题的最佳(或至少是可接受的)方法?

EDIT: 的定义vector2

typedef union vector2
{
    float v[2];
    struct { float x, y; };
} vector2;

a and b也属于类型vector2,因为点和向量之间的唯一区别在于它通过仿射变换进行变换的方式。


对我来说似乎是一个分配问题。以下是帮助您编写代码的逻辑。

我们将第一条射线称为R0.
上一点的轨迹R0定义为P:

P = P0 + alpha x V0

对于第二条射线R1:

P = P1 + beta x V1

因为它们应该相交:

P0 + alpha x V0 = P1 + beta x V1

alpha and beta是未知数,我们有两个方程x any y.

求解未知数并得到交点。

i.e.,

P0.x + alpha * V0.x = P1.x + beta * V1.x
P0.y + alpha * V0.y = P1.y + beta * V1.y

解决alpha and beta.

如果两者都有一个真正的正解alpha and beta,射线相交。
如果两者都有一个真实但至少有一个负解alpha and beta,延长的射线相交。

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

给定两个点和两个向量,找到交点[重复] 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • (ggplot2 更新?)带有百分比标签的堆叠条形图

    我正在复制一些所有脚本 一年多前编码 发现我不再得到相同的情节 我使用相同的数据集和相同的代码 唯一的区别是我的 R 安装和 ggplot2 的版本 所以我假设这就是问题所在 让我用几个愚蠢的情节向你展示这个问题 当生成带有百分比标签的堆叠
  • 如何修复重叠的 Google 图表图例

    这是我已经研究了几个小时的事情 但我似乎找不到有效的解决方案 我有一个页面 ASP NET Core 上面有引导选项卡 每个选项卡显示不同的图表 我已经阅读了各种答案 并从这个网站和其他网站尝试了很多不同的事情 但我确信我做错了什么 这是我
  • 使用最频繁的值按组填充缺失值

    我正在尝试使用一组使用最频繁的值来估算缺失值pandasPython 中的模块 在检查了 Stack Overflow 上的一些帖子后 我成功实现了这一目标 import numpy as np import pandas as pd df
  • 使用 rgb2ind 减少 matlab 中的颜色数量

    我正在做一些图像处理 我需要减少图像的颜色数量 我找到rgb2ind可以做到这一点并编写了以下代码片段 clc clear all X map rgb2ind RGB 6 nodither X rgb2ind RGB map rgb ind
  • 如何防止 Rails 在生产环境中记录操作视图

    在 Rails 3 2 0 中 是否可以关闭 Rails 日志记录以渲染视图 生产环境中的ActionView LogSubscriber 目前我发现抑制的唯一方法是猴子修补它并增加日志级别以通过以下方式进行调试 有没有更好的方法或任何配置
  • 关于 np.all 与 axis 的使用

    我尝试测试使用np all 测试数组a is a array 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 255 0 0 b 255 0 255 c np all a b axis 1
  • 将数据从一个 MySQL 表移动到另一个表

    当用户单击名为 删除 的按钮时 我试图将数据从一个数据库 注册 移动到另一个数据库 我想将数据移动到名为archived的表中 这是我尝试过的 从谷歌找到 result mysql query Insert Into archived se
  • LINQ to SQL 是否使用 ActiveRecord 模式?

    我刚刚研究了ActiveRecord模式 并基于此 http en wikipedia org wiki Active record pattern 看来 Linq 2 Sql 或多或少实现了这一点 我错了吗 或者需要更改什么才能使其符合
  • OpenGL 中对 R8G8B8 纹理的 NPOT 支持

    我使用 glew 和 glut 创建了一个示例应用程序 它读取 dds 文件并显示它 我手动读取dds文件 R8G8B8中的NPOT 886 x 317 文件 并创建数据指针 unsigned char 然后我使用准备纹理 void pre
  • RxJS 订阅未触发

    目前正在学习 RxJS 我有一个整数selectedCourseIndex在我想要订阅一个单独的组件的服务中 课程部分 service ts private selectedCourseIndex number 1 this number
  • C 中的变量定义忽略[重复]

    这个问题在这里已经有答案了 Code int main int a 1 switch a int b 20 case 1 printf b is d n b break default printf b is d n b break ret
  • 嵌套数组。第三层正在消失

    我有那个数组 a array 7 gt array id gt 7 parent gt 6 6 gt array id gt 6 parent gt 5 5 gt array id gt 5 parent gt 4 4 gt array i
  • mongodb可以作为嵌入式数据库使用吗?

    我正在开发 RSS 阅读器应用程序 我需要找到一个后端数据库 我希望嵌入数据库 因为我不希望用户安装数据库服务器 我知道 SQLite 是一个不错的选择 但我想知道是否还有其他 nosql 选择 我还没有 50 个代表点来评论和建立已接受的
  • 关闭弹出窗口后自动刷新父窗口

    我的 主 jsp 中有 2 个弹出屏幕 在第一个弹出窗口中 用户将更新所需的信息 更新 提交信息后 将显示一个新的弹出窗口 显示修改 查看 我想当用户单击视图页面中的关闭 X 时刷新主页 我尝试在视图页面中使用如下一些脚本 但它不起作用
  • 改变 Java 中静态方法的行为 - 字节码操作

    我正在尝试操纵静态方法 为了这 字节好友或者可以使用任何其他框架 有一个图书馆叫做Pi4J用于控制Raspberry Pi的GPIO 这个库有一个方法叫做 GpioController gpio GpioFactory getInstanc
  • 为数据网格的标题添加不同的上下文菜单

    我想为 WPF 上的数据网格标题添加不同的上下文菜单 我怎样才能做到这一点 这些资源将帮助您 WPF 中的上下文菜单 WPF 上下文菜单 如何创建自定义 WPF 上下文菜单 WPF 使用 XAML 这是另一种标记语言 您通常看到的一个常见现
  • 使用 javascript 从 json 对象动态添加数据行?

    我的网站项目中有一个 json 文件 如下所示 id 1 name ramesh phone 12345 salary 50000 id 2 name suresh phone 123456 salary 60000 这是示例数据 它有 4
  • 用户输入而不暂停代码(C++ 控制台应用程序)

    如何在不导致代码停止执行的情况下进行输入 在过去的 20 分钟里我一直在寻找答案 但没有结果 cin gt gt string 暂停代码 AFAIK 我需要使用多线程 还是有更好的方法 我什至不知道多线程是否有效 我最近开始学习c 至少可以
  • Meteor - 使用公共 IP 访问应用程序

    我可以使用 localhost 3000 访问该应用程序 但我尝试在本地移动设备上进行测试 而无需部署它 但我无法访问该网站 我允许传入请求 sudo ufw status verbose Status active Logging on
  • 给定两个点和两个向量,找到交点[重复]

    这个问题在这里已经有答案了 可能的重复 如何检测两条线段相交的位置 给定两点a and b加两个向量v and u我想找到第三点c 它是交点 如下所示 vector2 intersection vector2 a vector2 v vec