小编Cas*_*ius的帖子

为什么在WebXR中错误地计算了光线投射方向?

我试图在基于网络的增强现实应用程序中使用常规的 Three.js光线投射(与AR命中测试相反,这个问题不是关于真实飞机上的命中测试).

Web应用程序使用带有aframe-xr组件的 A-Frame 在WebXR Viewer for iOS和WebARCore for Android中获得WebXR支持,并且增强现实在这两个实验性浏览器中一般都可以正常工作.

但是,它包含aframe-xr三个.xr.jsWebXR polyfill库中的某些内容会导致在具有WebXR支持的实验性浏览器中不正确地投射光线投射的方向向量.光线投射的原点很好(在相机的当前位置),但是方向总是在下方偏移(y坐标太小)并且在它应该的位置稍微向左(x坐标太小)偏移.

巧合(或不是),y似乎A-Frame默认偏移相机偏离1.6米左右.或习惯,因为这似乎已经降级到Three.js最新(未发布)版本,A-Frameaframe-xr取决于工作.

这通常不是光线投射的问题,正如Glitch中的问题再现所证明的那样,我的测试结果如下:

Device/Example run     | Normal 0.7.0   |   WebXR       |   Normal 0.8.0   |
-----------------------|----------------|---------------|------------------|   
Windows Chrome w/mouse |   Correct      |   Correct     |       Correct    |
S8 Chrome              |   Correct      |   Correct     |       Correct    |
S8 WebARCore           |   Correct      |   Incorrect   |       Correct    |
iPad Safari …
Run Code Online (Sandbox Code Playgroud)

javascript augmented-reality three.js aframe

10
推荐指数
1
解决办法
256
查看次数

为什么 Rails 中与 source_type 设置的多态关联会导致错误的 SQL 语句?

我有三个模型:用户、组织和角色。一个用户可以通过角色访问多个组织,一个组织可以通过角色拥有多个用户。此外,用户可以通过角色访问其他模型,因此角色模型有一个名为“access_to”的多态belongs_to关联,角色表有字段“user_id”、“access_to_id”和“access_to_type”来跟踪关联。这一切都很好,我可以使用organization.users和user.organizations集合并获取预期的记录。

但是,已决定将组织模型重命名为“Organization”,使用美国英语拼写而不是英国英语(这是一个虚构的示例,实际问题类似,但具有与此问题无关的额外复杂性)。该应用程序已运行多年,因此角色表中有数千条记录,其中“access_to_type”设置为“Organization”(带有“s”)。此外,“组织”模型必须保留以用于遗留代码,而“组织”模型则由新代码使用。

为了实现这一点,“source_type: 'Organization'” 通过以下方式添加到 has_many 中: User 和新的 Organization 模型的关联,因此完整的代码如下所示:

class Role < ApplicationRecord
  belongs_to :user
  belongs_to :access_to, polymorphic: true
end

class User < ApplicationRecord
  has_many :roles, autosave: true, foreign_key: "user_id"

  has_many(
    :organizations,
    through: :roles,
    source: :access_to,
    source_type: "Organisation"
  )
end

class Organization < ApplicationRecord
  self.table_name = 'organisations'

  has_many :roles, as: :access_to
  has_many :users, through: :roles, source: :access_to, source_type: "Organisation"
end

class Organisation < ApplicationRecord
  has_many :roles, as: :access_to
  has_many :users, through: :roles
end
Run Code Online (Sandbox Code Playgroud)

调用“User.first.organizations”仍然按预期工作,并使用以下 SQL 语句返回预期记录:

class Role …
Run Code Online (Sandbox Code Playgroud)

polymorphism activerecord ruby-on-rails polymorphic-associations

4
推荐指数
1
解决办法
1060
查看次数