小编pko*_*out的帖子

在THREE.PerspectiveCamera中没有扭曲的90度视野

我正在建立一个运行在THREE.js上的网站,以生成一个3D世界.根据电子游戏的经验,我知道他们通常使用相机视角约90度.但是,当我将THREE.js中的PerspectiveCamera设置为如此高的FOV值时,场景严重失真.在保留大视野的同时,在游戏中以某种方式消除了这种失真.这是怎么做到的?我也可以在THREE.js中这样做吗?谢谢!

这是相机的创建方式:

new THREE.PerspectiveCamera(
    75, 
    window.innerWidth / window.innerHeight, 
    100, 
    10000000
);
Run Code Online (Sandbox Code Playgroud)

得到的图像是这样的.看看地球是如何在水平方向上拉伸的?这就是我想要摆脱的东西.

在此输入图像描述

three.js

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

Symfony 2.1中未显示单个字段表单错误消息

我在Symfony 2.1中有一个简单的表单,当我提交它时,我希望看到我的表单页面上显示一些错误消息,因为我根据需要表示了一些字段.

但是,{{ form_errors(form.company_name) }}显示该特定字段的错误消息的方法对我不起作用.它从不显示消息.但是,如果我使用{{form_errors(form)}},则所有错误消息都显示在一个位置.我需要个性化的{{form_errors(form.company_name)}}方式来实现它.有没有人经历过这个?可能有什么不对?这是我的枝条代码:

<form method="post" {{ form_enctype(form) }} novalidate>
  <table>
  <tr>
    <td class="field-cell">{{ form_label(form.promo_referral) }}:&nbsp;</td>
    <td>{{ form_errors(form.promo_referral) }}{{ form_widget(form.promo_referral) }}</td>
  </tr>
  <tr>
    <td class="field-cell">{{ form_label(form.company_name) }}:&nbsp;</td>
    <td>{{ form_errors(form.company_name) }}{{ form_widget(form.company_name) }}</td>
  </tr>
  ...
Run Code Online (Sandbox Code Playgroud)

这是我的相关控制器代码:

$registration = new ServiceVendorRegistration();
$form = $this->createForm(new ServiceRegisterForm(), $registration);

if ($request->isMethod("POST")) 
{
    $form->bind($request);
    if ($form->isValid())
    {
              // do something else
    }
}

return $this->render('MyBundle:Default:register_service_vendor.html.twig', array('form' => $form->createView()));
Run Code Online (Sandbox Code Playgroud)

Validation.yml使该字段需要如下:

properties:
        companyName:
            - NotBlank:
                message: You have to fill this …
Run Code Online (Sandbox Code Playgroud)

symfony-2.1

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

Python:函数的单元测试不返回任何内容,但更改对象的状态

我有一个不返回任何值的函数,但会更改其对象的内部状态。例如:

class A(object):
    def __init__(self):
        self._status = None

    def doSomethingThatResultsInChangingStatus(self):
        ...do some computing...
        self._status = newStatus
Run Code Online (Sandbox Code Playgroud)

实例_status变量应该是私有的,所以尽管 Python 从技术上讲允许我在函数调用后检查它的状态,但我觉得我不应该这样做。我现在检查它的方法是为_status变量设置一个 getter 函数,但这基本上与直接检查私有变量类似。测试这种功能的正确方法是什么?

python testing

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

无服务器 SQS 消费者跳过消息

我正在使用无服务器框架来使用来自 SQS 的消息。发送到队列的一些消息不会被消耗。他们直接进入飞行中的 SQS 状态,然后从那里进入我的死信队列。当我查看消费者日志时,我可以看到它消费并成功处理了 9/10 消息。一个总是不会被消耗并最终进入死信队列。我设置reservedConcurrency为 1,以便一次只有一个消费者可以运行。函数消费者timeout设置为 30 秒。这是消费者代码:

module.exports.mySQSConsumer = async (event, context) => {
  context.callbackWaitsForEmptyEventLoop = false;

  console.log(event.Records);

  await new Promise((res, rej) => {
    setTimeout(() => {
      res();
    }, 100);
  });

  console.log('DONE');

  return true;
}
Run Code Online (Sandbox Code Playgroud)

消费者功能配置如下:

functions:
  mySQSConsumer:
    handler: handler.mySQSConsumer
    timeout: 30 # seconds
    reservedConcurrency: 1
    events:
      - sqs:
          arn: arn:aws:sqs:us-east-1:xyz:my-test-queue
          batchSize: 1
          enabled: true
Run Code Online (Sandbox Code Playgroud)

如果我删除该await功能,它将处理所有消息。如果我将超时增加到 200 毫秒,更多的消息将直接进入运行中状态,并从那里进入死信队列。这段代码非常简单。知道为什么它会跳过一些消息吗?使用第一条语句时,未使用的消息甚至不会显示在日志中console.log()。他们似乎完全被忽视了。

amazon-sqs serverless

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

标签 统计

amazon-sqs ×1

python ×1

serverless ×1

symfony-2.1 ×1

testing ×1

three.js ×1