小编Kur*_*urt的帖子

Three.js并加载跨域图像

我知道以前曾经问过这个问题,而且我已经读过我能找到的问题和答案,但没有任何效果.

我在本地服务器(IIS)上运行它.我正在尝试从imgur加载图像,然后使用代码将其用作对象的纹理:

var savedImage = /[^?]*$/.exec(location.search)[0];
if (savedImage != "") { savedImageLoad("http://i.imgur.com/" + savedImage + ".jpg"); };

    function savedImageLoad(image) {
        var mapOverlay = new THREE.ImageUtils.loadTexture(image);
        sphere.material = new THREE.MeshBasicMaterial({map: mapOverlay, needsUpdate: true});;
        sphere.geometry.buffersNeedUpdate = true;
        sphere.geometry.uvsNeedUpdate = true;
    }
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at http://i.imgur.com/uBD0g95.jpg may not be loaded.
Run Code Online (Sandbox Code Playgroud)

我已尝试THREE.ImageUtils.crossOrigin = "anonymous";在我的代码开头,最后和其他各个方面放置或改变一些.我添加了一个web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
      <add name="Access-Control-Allow-Headers" value="Content-Type" …
Run Code Online (Sandbox Code Playgroud)

javascript cross-domain three.js

36
推荐指数
2
解决办法
4万
查看次数

D3.js 在画布图像上的映射投影

我正在尝试获取画布元素的内容(实际上只是加载到画布上的图像)并使用 d3 将它们扭曲为不同的地图投影。所以我找到了一个这样做的例子(this other SO question)。

问题是它不适用于每个投影。编码:

var height = 375,
    width = 750;

var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
canvas.width = width;
canvas.height = height;

var context = canvas.getContext('2d');

var projection = d3.geo.lagrange()
    .translate([width/2, height/2])
    .scale(100); //SET SCALE HERE

var path = d3.geo.path().projection(projection);

var image = new Image();
image.crossOrigin = 'anonymous';
image.src = 'http://i.imgur.com/zZkxbz7.png';
image.onload = function() {
    var dx = width,
        dy = height;

    context.drawImage(image, 0, 0, dx, dy);

    var sourceData = context.getImageData(0, 0, dx, dy).data,
        target = …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js d3.geo

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

使用Powershell/curl检查http标头的问题

事实证明这比我想象的要困难得多(而且可能应该是这样).

我已经尝试过Cygwin + curl,但是无法运行(Cygwin永远无法找到curl.exe,但我确实进行了包检查,它就在那里).

我已经使用命令提示符尝试了Windows的curl,它可以工作.但我有很多网址需要检查并单独进行,只是时间效率不高.我无法弄清楚如何通过cmd提示告诉curl使用这里提到的文件(因为没有"xargs").

我也尝试过使用PowerShell,但这也存在问题.当我尝试在这里遵循选项1时

我尝试运行时遇到错误$xHTTP.open("GET",$url,$false):

使用"3"参数调用"open"的异常:"未指定的错误(来自HRESULT的异常:0x80004005(E_FAIL))"

同样使用PowerShell,我完全不知道如何使用包含url的文件.我对PS的了解非常有限(如不存在).

这里最好的是弄清楚如何让命令提示符/ curl使用文件,但我无法弄明白.

powershell curl command-prompt

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

在three.js中围绕球体(模拟太阳)旋转矢量

我试图去适应这个代码(这本身就是一个实现).我已经使一般的可视化和渲染工作,但我现在正试图动画一些逼真的动作.

光源的点由标准化矢量确定(例如THREE.Vector3(1, 0.75, 0),光将看起来来自右上角).现在我想做的是让矢量围绕球体旋转,使得球体看起来像是围绕光源旋转.但我无法弄清楚如何做到这一点.我已经尝试更新/更改矢量的位置.但我不确定如何计算正确的下一个x,y,z值.我尝试过应用欧拉角和旋转矩阵,如下所示:

euler = new THREE.Euler(f,g,h, 'XYZ');
matrix = new THREE.Matrix4().makeRotationFromEuler(euler);
light = vector.applyMatrix4(matrix);
Run Code Online (Sandbox Code Playgroud)

但在这里,我不确定如何获得正确的值f,g,h,使光不仅仅在球体周围摆动.

我是否走在正确的轨道上?

工作示例:http://jsfiddle.net/VsWb9/3890/

javascript three.js

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

比较Excel VBA中的两列(大于/小于或等于)

我真的很惊讶我找到答案就这么麻烦了.我有2列包含一堆数字(在同一工作表上).我只想让代码说"如果第1列中的值>第2列中的值,请对列中的每一行执行此操作".我试过了

If sheet.range("B2:B35").Value > sheet.range("C2:C35").Value Then
'do something
End If
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用.

excel vba compare function

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

在Excel和VBA中,如何将单元格的值设置为公式结果而不是公式

我从一张工作表中获取值,然后使用 Excel 中的宏将它们放入另一张工作表中。我目前有这个工作正常:

sheet.range("B2:B35").Value = "=IF(SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322)<>0,SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322),""-"")"
Run Code Online (Sandbox Code Playgroud)

显然,它把整个公式作为单元格的值。我想要的只是将公式的结果放入单元格中。我尝试在“IF ...”部分添加 Evaluate() ,但 IF 无法正确评估(我只是在每个单元格中得到“-”)。这是否可以做到,或者我是否必须有单独的代码来循环并将值更改为单元格的值?

excel vba formula evaluate

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

如果使用循环,则在threejs中旋转球体不起作用

当点击一个按钮时,我试图让球体旋转一定次数(用户选择的次数).由于转数是开放式的,我认为最简单的方法是在for循环中完成:

$('#clickme').on('click', function () {
    var multiple = 4; //Change this value to rotate at different angles
    var rotationVector = new THREE.Vector3(0,1,0);
    var angle = ((360 / multiple) * Math.PI) / 180;
    for (var i = 0; i < multiple; i++) {
        sphere.rotateOnAxis(rotationVector, angle);
        alert(i);
    }
});
Run Code Online (Sandbox Code Playgroud)

现在alert只是一个占位符,但我确实希望在每次轮换后完成其他事情.这里的问题是旋转永远不会完成.没有错误,它会触及该行代码,但对象永远不会旋转.如果我取出sphere.rotateOnAxisfor循环,那么它工作正常(至少每次点击旋转一次).我尝试了各种重新渲染场景的方法,但是从来没有做过任何事情.

这里的工作示例:http://jsfiddle.net/weatL3nc/2/

javascript three.js

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