2013-05-23 4 views
0

세슘 샌드캐슬에서 다음 코드를 사용하여 필라델피아에서 로스 앤젤레스까지 스플라인을 만들려고했습니다.CatmullRomspline이 출력을 제공하지 않습니다.

 //catmulrom spline. 
     var controlPoints = [ 
    {point: new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0), time: 0.0}, 
    {point: new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0), time: 1.5}, 
    {point: new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0), time: 3.0}, 
    {point: new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0), time: 4.5}, 
    {point: new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0), time: 6.0} 
]; 
var spline = new Cesium.CatmullRomSpline(controlPoints); 

아무런 오류가 없습니다. 그리고 코드는 괜찮은 것 같습니다. 그러나 스플라인은 플롯되어 있지 않습니다. 어떤 사람이이 문제를 해결할 수 있습니까?

http://cesium.agi.com/Cesium/Apps/Sandcastle/index.html?src=Hello%20World.html

그리고 CatmullRomSpline에 대한 참조는 여기에서 찾을 수 있습니다 : - : - 당신은 아래의 사이트에서 코드를 시도 할 수 있습니다 http://cesium.agi.com/Cesium/Build/Documentation/CatmullRomSpline.html

감사합니다 많이 미리

PS의 자바 스크립트 사람이 제발을 그것을보고 내가 잘못 가고있는 곳을 알려주십시오.

답변

0

실제로 CatmullRomSpline 생성자에는 동일한 길이의 배열 인 {times : Array, points : Array} 형식의 JSON 객체 인 1 개의 필수 매개 변수가 있기 때문에 코드에 오류가 발생합니다.

이것은 Cesium ref doc을 보았습니다. 실제로는 은 Spline 객체가 전혀 음모가 아닌 것처럼 보입니다! (적어도 직접적으로는 아닙니다.) 잘못 입력하지 않았다면 Cesium에 무엇인가를 그릴 수있는 유일한 방법은 widget.scene.primitives 객체를 사용하는 것이고, 그의 메소드 중 일부에 직접적으로 부여 할 방법이 없습니다 (예 :) 매개 변수로 스플라인. 정기적으로 d의 곡선 :

그래서 나는 유일한 방법은 (! 역설적으로) 보간을 폴리 라인, 더 정확하게 이상의 물론 포인트의 초기 세트, 평가하는 스크립트 ( spline.evaluate(0+i*d), i=0..max(times)/d 의사)로 생각합니다.

행운을 빈다.

관련 문제