小编Sys*_*dox的帖子

将glm :: vec4转换为glm :: vec3

如何将a转换glm::vec4glm::vec3

只有x,y,z须─该w组件可以被丢弃.

在GLSL中,可以使用.xyz[1] 来完成,但在glm中,这会导致编译错误:

error: 'glm::vec4' has no member named 'xyz'
Run Code Online (Sandbox Code Playgroud)

[1] http://en.wikibooks.org/wiki/GLSL_Programming/Vector_and_Matrix_Operations#Components

glm-math

16
推荐指数
2
解决办法
3万
查看次数

如何在 glm 中创建广告牌矩阵

如何使用 glm 从空间中的一点创建广告牌翻译矩阵?

opengl glsl glm-math

6
推荐指数
2
解决办法
2719
查看次数

Cordova - 修改或删除MainActivity

我正在开发一个应该在"Kiosk"模式下运行的Cordova应用程序 - 该设备将被锁定到该应用程序并且无法退出.

为了达到这个目的,我使用了一个稍微修改过的cordova-plugin-kiosk版本,它提供了一个额外的activity(KioskActivity),它被定义为一个启动器(它有android.intent.category.HOME).

这工作得相当好.但是,应用程序仍然具有原始的cordova MainActivity,这会导致一些混乱,特别是因为这是由原始启动器中的图标和cordova run android命令启动的.它还会在Chrome远程检查器中生成两个条目.

AndroidManifest.xml目前这个样子的:

    <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|uiMode" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
        <intent-filter android:label="@string/launcher_name">
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|uiMode" android:label="@string/activity_name" android:launchMode="singleInstance" android:name="jk.cordova.plugin.kiosk.KioskActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.HOME" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

我想将这些合并为一个活动,并消除混乱.

我可以看到两种可行的方法:

  1. 找到一种方法从中删除该MainActivity部分AndroidManifest.xml,并希望也可以改为cordova run android运行KioskActivity.
  2. 找到一种修改MainActivity代码并将代码KioskActivity移入其中的方法.

但是,我找不到任何明智的方法来实现其中任何一个,而不会通过打破所有的cordova工具造成更多的混乱.

android cordova cordova-plugins

6
推荐指数
2
解决办法
5224
查看次数

CSS flex-basis: 0% 与 flex-basis: 0px 有不同的行为

根据MDNflex: 1应该设置简写flex-basis: 0。然而,它实际上设置了flex-basis: 0%,更令人惊讶的是,它有不同的行为。

在下面的示例中,我期望div.middle缩小和滚动,因为它已经给出了overflow-y: autoflex: 1,这也应该意味着flex-basis: 0。但事实并非如此——整个身体反而滚动,因为它拒绝收缩。如果您取消注释 显式flex-basis: 0,则它可以正常工作。

body {
  text-align: center;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
}
.outer {
  min-height: 100%;
  display: flex;
  background: #99f;
  flex-direction: column;
}
.middle {
  background: #f99;
  flex: 1;
  /*flex-basis: 0;*/
  overflow-y: auto;
}
Run Code Online (Sandbox Code Playgroud)
<div class='outer'>
  <div class='top'>top</div>
  <div class='middle'>
    A
    <div style='height:800px'></div>
    B
  </div>
  <div class='bottom'>bottom</div> …
Run Code Online (Sandbox Code Playgroud)

css flexbox

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

在Python中区分标量,列表和字典参数的最佳方法是什么?

我想要一个函数,它通常接受X类型的参数,其中X是标量,列表或dict,并根据其他信息返回具有相同键值的X列表.

def foo(info, k):
   return [bar(item,k) for item in processInfo(info)]

def bar(item, keydata):
   # pseudocode follows.
   # What we want to do is return an output of parallel type to the input key k,
   # using the key data to lookup information from the input item.
   if keydata is a scalar:
      return item[keydata]
   elif keydata is a list:
      return [item[k] for k in keydata]
   elif keydata is a dict:
      return dict((k,item[v]) for (k,v) in keydata.iteritems())
   else:
      raise ValueError('bar expects a …
Run Code Online (Sandbox Code Playgroud)

python polymorphism types python-2.7

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

为什么使用线程添加值后从 ArrayList 获取空值

我多次运行以下代码,发现有时我从 ArrayList 中得到“null”。当我向数组添加整数值时,我无法理解为什么会发生这种情况。

package com;

import java.util.ArrayList;
import java.util.List;

public class test implements Runnable {

    static List<Integer> ls = new ArrayList<Integer>();

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(new test());
        Thread t2 = new Thread(new test());

        t1.start();
        t2.start();
        t1.join();
        t2.join();
        System.out.println(ls.size());
        for (int i = 0; i < ls.size(); ++i) {
            System.out.println(i + "  " + ls.get(i));
        }
    }

    @Override
    public synchronized void run() {
        try {
            for (int i = 0; i < 20; …
Run Code Online (Sandbox Code Playgroud)

java collections

5
推荐指数
1
解决办法
2718
查看次数

Typescript 对象索引

总体而言,我对 Typescript 相处得很好,但我不断遇到这个问题。

假设我有一个类型,可以是一系列字符串之一:

type ResourceConstant = 'A' | 'B' | 'C';
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个对象来保存每个资源的数量(因此是ResourceConstantto的映射number):

let x: { [key: ResourceConstant]: number } = {};

>>> error TS1337: An index signature parameter type cannot be a union type. Consider using a mapped object type instead.
Run Code Online (Sandbox Code Playgroud)

那么什么是“映射对象类型”?我找到了一些有关“映射类型”的信息,但根本不清楚它们与此问题有何关系。也许他们的意思是我应该使用Record

let x: Record<ResourceConstant, number> = {};

>>> error TS2740: Type '{}' is missing the following properties from type 'Record<ResourceConstant, number>': U, L, K, Z, and 80 more.
Run Code Online (Sandbox Code Playgroud)

好的,所以它需要Partial

let …
Run Code Online (Sandbox Code Playgroud)

typescript

5
推荐指数
1
解决办法
4309
查看次数

Svelte 别名/重命名道具

有没有办法在 svelte 中重命名/别名道具?

例如,如果我有一个需要fooprop 的组件,但我还想要foo当前状态的局部变量,有什么方法可以重命名传入的 prop,如下所示:

export let foo as forceFoo;
let foo = forceFoo | null;
Run Code Online (Sandbox Code Playgroud)

通常正确答案是以下两个之一:

  1. 将道具重命名为类似的名称initialFoo
  2. 重命名状态

在这种情况下,重命名 prop 是不合适的 - 它是组件的公共 API,它不是初始状态,它是强制该字段值的可选覆盖。

重命名状态对于单个字段来说是可以的,并且通常对于通用组件来说效果很好,但是当组件是具有许多字段的表单并且必须将这些字段传递给希望它们具有正确名称的保存函数时,就会变得可怕且笨拙。

svelte svelte-component

5
推荐指数
1
解决办法
1086
查看次数

mysqld 未知选项 '--initialize'

我正在尝试在 Windows Server 2012 上安装 MySQL 5.6。在 Linux 中,这将花费我 5 秒钟,但我已经搞砸了几个小时,但我仍然无法登录。

我认为安装程序在配置阶段搞砸了,所以我删除了数据目录并尝试重新创建它:

bin\mysqld --initialize-insecure
Run Code Online (Sandbox Code Playgroud)

但 MySQL 中止:

[ERROR] bin\mysqld: unknown option '--initialize-insecure'
Run Code Online (Sandbox Code Playgroud)

如果我使用--initialize.

日志中还有另一个错误:

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it
Run Code Online (Sandbox Code Playgroud)

但显然解决这个问题的方法是运行mysqld --initialize.

为什么 mysqld 不识别它自己的--initialize选项?

mysql

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