求大神帮忙看看, unity球形插值问题

public Transform sunrise;
public Transform sunset;
public float journeyTime = 1.0F;
private float startTime;
void Start() {
startTime = Time.time;
}
void Update() {

    Vector3 center = (sunrise.position + sunset.position) * 0.5F;
    Debug.DrawLine (center, center+new Vector3(0, 1, 0));
    Debug.Log (center);
    center -= new Vector3(0, 1, 0);
    Debug.Log (center);
    Vector3 riseRelCenter = sunrise.position - center;
    Vector3 setRelCenter = sunset.position - center;
    float fracComplete = (Time.time - startTime) / journeyTime;
    transform.position = Vector3.Slerp(riseRelCenter, setRelCenter, fracComplete);
    transform.position += center;
}

这个代码怎么不直接插值, 非得找个中心点,跟直接进行球形插值有什么区别

http://blog.csdn.net/yupu56/article/details/54883003

Vector3 riseRelCenter = sunrise.position - center;还有这一句
sunrise是相对于原点的向量
center也是相对于原点
riseRelCenter是以center为起点 sunris。position为终点的向量,起点已经不是原点了

而插值是相对于原点的吧?
这两个量都不是以原点为起点的,怎么实现的插值呢