小编Nee*_*101的帖子

RealityKit – 在 3d 空间中的两点之间创建直线

如何使用 RealityKit 在 3d 空间中的两点之间创建一条线?

Scenekit 中有在两点之间创建直线的示例,但是使用 RealityKit 基本上没有。

为了创建这条线,我创建了一个矩形模型实体并将其放置在我的第一个触摸点和当前触摸点之间。从这里开始,我需要做的就是旋转矩形以面向当前触摸点。但是,使用simd_quatf(from: to:)并不能按预期工作。

rectangleModelEntity.transform.rotation = simd_quatf(from: firstTouchedPoint, 
                                                       to: currTouchedPoint)
Run Code Online (Sandbox Code Playgroud)

如果我触摸一个点,然后直接向下拖动,则矩形模型应该是第一个触摸点和当前触摸点之间的一条直线,但它保持水平并略有倾斜。

为了解决这个问题,我尝试获取我最初的水平线作为向量和从第一次触摸到当前触摸点的向量之间的角度

let startVec = currTouchedPoint - firstTouchedPoint
let endVec = endOfModelEntityPoint - modelEntityCenterPoint
let lengthVec = simd_length(cross(startVec, endVec))
        
let theta = atan2(lengthVec, dot(startVec, endVec))
Run Code Online (Sandbox Code Playgroud)

这给了我 3d 空间中两个向量之间的角度,这似乎是正确的,当我检查它时,当我在它们之间直接触摸和拖动时,它给了我 90 度。

问题是我不知道旋转它的轴应该是什么。由于这是 3d 空间,因此该线不需要位于 2d 平面上,当前触摸位置可以位于起始触摸位置的下方和前面。

rectangleModelEntity = simd_quatf(angle: theta, axis: ???)
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我什至不太确定上述是否是在两点之间创建一条线的正确解决方案。理论上,这是相当基本的,创建一个低高度/深度的矩形来模仿一条线,将其放置在起始点和当前触摸点的中心,然后旋转它以使其方向正确。

两个向量之间的上述度数的轴应该是什么?

有没有更好的方法使用 RealityKit/ARKit 在 3d 空间中的点之间创建两条线?

augmented-reality swift arkit realitykit

7
推荐指数
1
解决办法
2271
查看次数

Dynamically set scss variables angular ionic

I have an API call that would get a json with my scss colours, such as

dynamic-colour: #5260ff
Run Code Online (Sandbox Code Playgroud)

but this variable doesn't get called until run time of the ionic app. Was setting scss variables dynamically before compile time even possible?

From most of the angular examples I've seen, they already have a preset colour set, and I don't see any examples of what I want to achieve. Is it possible to preset a variable, but override it when running …

sass web typescript ionic-framework angular

6
推荐指数
1
解决办法
2443
查看次数

获取选定的选项卡以切换图标 Ionic 5

当有人选择它时,我试图将我的标签图标从填充更改为轮廓(选中时填充,未选中时轮廓)。

Ionic 5 Tabs Doc 上有一个getSelected()方法,但没有关于如何使用它的示例。

我的想法是使用ionTabsDidChange来检测某人何时单击了一个选项卡,然后使用getSelected()并将图标从“home”设置为“home-outline”。

标签页.html

<ion-tabs>
  <ion-tab-bar slot="bottom">
    <ion-tab-button class="tab-btn" tab="home">
      <ion-icon name="{{ homeIcon }}"></ion-icon>
      <ion-label>Home</ion-label>
    </ion-tab-button>

    <ion-tab-button class="tab-btn" tab="price">
      <ion-icon name="{{ priceIcon }}"></ion-icon>
      <ion-label>Price Search</ion-label>
    </ion-tab-button>
<ion-tabs>
Run Code Online (Sandbox Code Playgroud)

标签文件

export class TabsPage {
  public homeIcon = 'home';
  private homeFilled = 'home';
  private homeOutline = 'home-outline'
  public priceIcon = 'search-outline';
  private priceFilled = 'search';
  private priceOutline = 'search-outline';

  ionTabsDidChange() {
    let selectedTabName = getSelected();
    // Stuff to switch icon from …
Run Code Online (Sandbox Code Playgroud)

html typescript ionic-framework angular ionic5

5
推荐指数
2
解决办法
3540
查看次数

如何在 Vue 3 中使用 Vue.util.extend?

如何在 Vue 组件中使用 Vue.util.extend?

我需要从 prop 复制数据(没有引用),建议使用Vue.util.extend({}, this.propData),但没有关于如何使用它的说明。

我到底需要导入什么才能使辅助函数正常工作?

示例组件.vue

<script>
import Vue ...???

export default {

  props: {
    propData: Array
  }

  data() {
    return() {
      localPropData: Vue.util.extend({}, this.propData)
    }
  }
}
</script>
Run Code Online (Sandbox Code Playgroud)

即使是某种形式的文档链接也会有所帮助。现在我决定只使用 JSON.parse(JSON.stringify(this.propData)) ,它工作得很好。

通过 Laravel 8 使用 Vue 3

javascript vue.js vuejs3

5
推荐指数
0
解决办法
2508
查看次数

删除 Ios ar 对象的触摸手势(旋转/平移)

摘要:添加 AR 对象后删除其上的触摸手势?

AR 查看代码(仅相关位)。其中 arObject 是具有网格、材质和碰撞形状的模型实体。

func updateUIView(_ uiView: ARView, context: Context) {
  arObject = CreateCustomModelEntity()
  uiView.installGestures([.translation, .rotation], for: arObject)
}
Run Code Online (Sandbox Code Playgroud)

上面的代码可以向我的 arObject 添加触摸手势,并允许它在锚定平面上旋转和移动。

但是,我想在添加后删除触摸手势。

用户流程:

用户可以单击一个模型,将其移动并将其放置在他们想要的位置,然后触摸“确认”按钮。触摸确认按钮后,arObject 将无法再移动。

查看Apple文档,有一个installGestures,但没有等效的removeGestures。这可能吗?

一些想法,

  1. 完全删除锚点并重新创建它(但是对象的位置会丢失,所以这很糟糕)
  2. 使用新的子 ar 对象覆盖现有的子 ar 对象,而不安装触摸手势。我相信这会保留对象放置,但双重创建 ar 对象并不理想,除非没有其他解决方案。
  3. 使用安装手势创建一个临时 ar 对象,然后在确认放置后使用新的 arObject(无触摸手势)覆盖它。与2.解决方案类似。

augmented-reality ios arkit swiftui realitykit

3
推荐指数
1
解决办法
625
查看次数

离子服务无法获取/找不到模块“@ionic-native/splash-screen/ngx”

我正在尝试运行 Ionic 并使用 Ionic 框架Ionic 文档教程进行安装,但是当我运行 Ionic serve 时,我的浏览器打开一个错误,“无法获取 /”

我安装npm install -g @ionic/cli并创建了基本模板选项卡,ionic start myApp tabs

这是离子发球的错误

> ng run app:serve --host=localhost --port=8100
[ng] Browserslist: caniuse-lite is outdated. Please run next command `npm update`
[ng] ? ?wds?: Project is running at http://localhost:8100/webpack-dev-server/
[ng] ? ?wds?: webpack output is served from /
[ng] ? ?wds?: 404s will fallback to //index.html
[ng] chunk {main} main.js, main.js.map (main) 2.03 kB [initial] [rendered]
[ng] chunk {polyfills} polyfills.js, polyfills.js.map …
Run Code Online (Sandbox Code Playgroud)

macos node.js ionic-framework angular

2
推荐指数
1
解决办法
5404
查看次数