小编Gre*_*ell的帖子

如何使verlet集成冲突更稳定?

我没有使用任何引擎,而是试图使用verlet integeration构建我自己的软体动力学以获得乐趣.我做了一个由4x4点定义的立方体,其中的段保持其形状如下:

我的盒子的结构

我有点碰撞场景的边缘,它似乎工作正常.虽然我确实得到了一些点,这些点本身就会坍塌,但它会形成一个凹痕,而不是保持它的盒子形状.例如,如果它的速度足够高并且落在它的角落,它往往会崩溃:

在此输入图像描述

在解决碰撞时我必须做错事或乱序.这是我如何处理它.它是在Javascript中,虽然语言无关紧要,随时可以用任何语言回复:

sim = function() {
    // Sim all points.
    for (let i = 0; i < this.points.length; i++) { 
        this.points[i].sim();
    }

    // Keep in bounds.
    let border = 100;

    for (let i = 0; i < this.points.length; i++) { 
        let p = this.points[i];

        let vx = p.pos.x - p.oldPos.x;
        let vy = p.pos.y - p.oldPos.y;

        if (p.pos.y > height - border) {
         // Bottom screen
         p.pos.y = height - border;
         p.oldPos.y = p.pos.y + vy;
        } else …
Run Code Online (Sandbox Code Playgroud)

javascript simulation game-physics verlet-integration

11
推荐指数
1
解决办法
408
查看次数

pymongo 无法连接到主要

我正在尝试find_one连接到我的副本集的主节点。

MongoClient(hostname, replicaSet="rs0", read_preference=ReadPreference.PRIMARY)
Run Code Online (Sandbox Code Playgroud)

但这会导致错误:

ServerSelectionTimeoutError: 没有副本集成员匹配选择器“Primary()”

我能够成功阅读使用SECONDARY_PREFERRED. 我也尝试连接使用但MongoReplicaSetClient没有成功。我猜这是由于配置不当造成的,但是我应该寻找什么?

rs.状态:

rs0:PRIMARY> rs.conf()
{
       "_id" : "rs0",
       "version" : 111313,
       "protocolVersion" : NumberLong(1),
       "members" : [
               {
                       "_id" : 1,
                       "host" : "ANDROMEDA:27017",
                       "arbiterOnly" : false,
                       "buildIndexes" : true,
                       "hidden" : false,
                       "priority" : 1,
                       "tags" : {

                       },
                       "slaveDelay" : NumberLong(0),
                       "votes" : 1
               },
               {
                       "_id" : 2,
                       "host" : "mongo02.db.com:27017",
                       "arbiterOnly" : false,
                       "buildIndexes" : true,
                       "hidden" : false,
                       "priority" : 0.5, …
Run Code Online (Sandbox Code Playgroud)

database mongodb pymongo replicaset

8
推荐指数
1
解决办法
1万
查看次数

Maya 中的可停靠窗口与 PySide 清理

我创建了一个可以停靠在 Maya 主用户界面中的工具,但是我无法在它关闭后找到清理它的方法。问题是,如果我创建了该工具的多个实例,然后将其拖动到位以停靠它,当我右键单击 Maya 的窗口时,它们都会显示出来。工具关闭时如何正确清理这些?

我已经尝试过了cmds.deleteUIQObject.deleteLater()充其量只能清除工具的内容,但它仍然存在于 Maya 中。这是我到目前为止所拥有的一个例子:

from shiboken import wrapInstance
from PySide import QtGui, QtCore
from maya import OpenMayaUI as OpenMayaUI
from maya.app.general.mayaMixin import MayaQWidgetDockableMixin

class Window(MayaQWidgetDockableMixin, QtGui.QWidget):
    def __init__(self, parent = None):
        super(self.__class__, self).__init__(parent = parent)
        mayaMainWindowPtr = OpenMayaUI.MQtUtil.mainWindow() 
        self.mayaMainWindow = wrapInstance(long(mayaMainWindowPtr), QtGui.QWidget) 
        self.setWindowFlags(QtCore.Qt.Window)

        if cmds.window('myTool', q = True, ex = True):
            cmds.deleteUI('myTool')

        self.setObjectName('myTool')

        self.setWindowTitle('My tool')
        self.resize(200, 200)

        self.myButton = QtGui.QPushButton('TEMP')

        self.mainLayout = QtGui.QVBoxLayout()
        self.mainLayout.addWidget(self.myButton)
        self.setLayout(self.mainLayout)

    def dockCloseEventTriggered(self):
        self.deleteLater()

    def run(self):
        self.show(dockable = …
Run Code Online (Sandbox Code Playgroud)

python maya pyside

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

自定义 Maya 的 addCheckCallback 弹出消息

当用户保存文件时,我希望在保存之前进行检查。如果检查失败,则不会保存。我使用 mSceneMessage 和 kBeforeSaveCheck 进行了这项工作,但我不知道如何在失败时自定义弹出消息。这可能吗?

import maya.OpenMaya as om
import maya.cmds as cmds

def func(retCode, clientData):
    objExist = cmds.objExists('pSphere1')
    om.MScriptUtil.setBool(retCode, (not objExist) ) # Cancel save if there's pSphere1 in the scene

cb_id = om.MSceneMessage.addCheckCallback(om.MSceneMessage.kBeforeSaveCheck, func)
Run Code Online (Sandbox Code Playgroud)

现在它显示

用户提供的回调取消了文件操作。

python maya maya-api

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

物理圈碰撞弹出并滑向界限

在Java中,我正在为Android编写一个移动应用程序,以便与我自己编写的某些类进行交互.重力取决于手机的倾斜度.

我注意到当我在一个角落里蜷缩成一堆球时,其中一些会开始抖动,或者有时会在与其他球碰撞时滑动.这可能是因为我正在以错误的顺序执行步骤吗?

现在我有一个循环通过每个球到:

  • 模拟迭代
  • 检查与其他球的碰撞
  • 检查与场景边界的碰撞

我应该补充一点,我与边界有摩擦,当发生球与球的碰撞时,只是为了失去能量.

以下是处理冲突的部分代码:

    // Sim an iteration
    for (Ball ball : balls) {
        ball.gravity.set(gravity.x, gravity.y);

        if (ball.active) {
            ball.sim();

            // Collide against other balls
            for (Ball otherBall : balls) {
                if (ball != otherBall) {
                    double dist = ball.pos.distance(otherBall.pos);
                    boolean isColliding = dist < ball.radius + otherBall.radius;
                    if (isColliding) {
                        // Offset so they aren't touching anymore
                        MVector dif = otherBall.pos.copy();
                        dif.sub(ball.pos);
                        dif.normalize();
                        double difValue = dist - (ball.radius + otherBall.radius);
                        dif.mult(difValue);
                        ball.pos.add(dif);

                    // Change …
Run Code Online (Sandbox Code Playgroud)

java physics collision

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

在 html 文件中自定义嵌入的 Git Gist 文本大小

我的 html 页面上有一个嵌入式要点来显示一些代码。我想知道是否有办法编辑其默认字体大小?在网上搜索之后,有人建议覆盖 gist 的 css。我不精通 html 或 css,所以对菜鸟问题表示歉意。

这是我的 html 页面的片段:

<html>
<head>
<style type="text/css">

.gist .gist-file .gist-meta {
    font:30px "Helvetica Neue", Helvetica, arial, freesans, clean, sans-serif;
    text-shadow:1px 1px rgba(255,255,255,0.8);
    overflow:hidden;
    color:#999;
    background-color:#e8e8e8;
    background-image:linear-gradient(#fafafa,#e8e8e8);
    background-repeat:repeat-x;
    padding:10px;
}

</style>
</head>

<body>

<script src="https://gist.github.com/ghost/754a9a308214f2db688e634b64d31597.js"></script>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

这是正确的想法吗?

html css git gist

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

Maya查找对象是否已实例化?

在Maya中,有没有办法通过脚本来查明对象是否是实例?到目前为止我尝试的每一个技巧都不起作用.谢谢!

python maya

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

Firebase函数上传到存储

我正在尝试使用 Firebase 云功能将图像上传到存储。当我从浏览器运行该函数时,我收到“0”响应,表明它失败。然后我检查日志并显示错误:

上传不好![错误:ENOENT:没有这样的文件或目录,stat 'https://i2.wp.com/lifemadesimplebakes.com/wp-content/uploads/2018/03/How-To-Make-Fruit-Salad-680x680.jpg '] {

但图像网址确实存在。所以我想知道为什么它不起作用?这是我的整个云功能:

const functions = require('firebase-functions');
const admin = require('firebase-admin');


exports.uploadTest = functions.https.onRequest(async (request, response) => {
    const url = 'https://i2.wp.com/lifemadesimplebakes.com/wp-content/uploads/2018/03/How-To-Make-Fruit-Salad-680x680.jpg';
    
    admin.initializeApp();
    
    const bucket = admin.storage().bucket('my-bucket.appspot.com');

    bucket.upload(url, {
        destination: "myFolder/myFile.png"
    }).then(() => {
        console.log("Upload good!");
        response.send('1');
        return true
    }).catch(err => {
        console.error("Upload bad!", err);
        response.send('0');
    });
})
Run Code Online (Sandbox Code Playgroud)

node.js firebase google-cloud-functions firebase-storage

0
推荐指数
1
解决办法
2702
查看次数

Python:将列表中相同符号的相邻数字相加

我必须将列表中的相邻数字相加,如下所示:

ls = [5, -2, -2, 2, -4, -2 ,-2, 7, 3, 1]

输出应该是: [5, -4, 2, -8, 11]

python sum list

-1
推荐指数
1
解决办法
166
查看次数