2013-05-23 7 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 его Javascript кто-то пожалуйста, принять взгляните на него и сообщите мне, куда я ошибаюсь.

ответ

0

На самом деле ваш код должен вызывать ошибку, потому что конструктор CatmullRomSpline имеет 1 обязательный параметр, который является объектом JSON формы: {times: Array, points: Array}, с массивами одинаковой длины.

Напоминаю, что я посмотрел на документ Цезии, который вы дали, но на самом деле не похоже, что объект Spline предназначен для рисования вообще! (Непосредственно, по крайней мере.) Единственный способ сделать что-то в Цезии, если я не ошибаюсь, связан с объектом widget.scene.primitives и не может напрямую передать некоторые из его методов (добавьте, например) сплайн как параметр.

Так что я думаю, что единственный путь к интерполировать (как ни парадоксально!) Его ломаной линией, более точно, чем ваш первоначальный набор точек, конечно, с помощью сценария, который оценивает (псевдокода: spline.evaluate(0+i*d), i=0..max(times)/d) кривой с регулярными интервалами d.

Удачи вам!