在《順風相送》的序裡記載著:「行路難者有徑可循,有人可問,若行船難者則海水接連於天,雖於山嶼,莫能識認」。情況確實是這樣,當船離開港口駛入浩瀚的大海,極目四望,「但見波光接天綠」,水天一片,你能分辨出東、西、南、北,知道船舶向什麼方向航行嗎?而這卻是航海者,特別是船長所必須明了的。否則,船舶就會迷失方向,偏離航道,不要說無法到達目的地,甚至會遭遇意外災難。指引航向,保證船舶的正常航行,對於航海者來說實在是太重要了。
一、在指南針發明以前,人們是利用日月星辰來判定方向的
我國是天文學發達最早的國家之一。早在六七千年前的新石器時代,就已經有了東、西、南、北四個方位的觀念,並且逐步形成了確定方位的方法。開始,人們是根據太陽的出沒方向來定東、西的;接著,人們發現每天日影最短的時候太陽的方位恰好是正南,用它也可以判定東、西、南、北;以後,人們又發現北極星恆定在北方的方位,而北鬥星一直在北極星的附近,指示著北極星的方位,夜間可以用它來判知東、西、南、北。早期的航海者就是利用這些知識來指引航向的,這也可以說是航海天文學的開端。
這種技術,在我國古代,被稱作「過洋牽星」。據記載,在西漢初年,我國就開始利用天文知識來導航了。當時的著作《淮南子》一書裡說:
「夫乘舟而惑者不知東西,見鬥、極則悟矣。」
這就是說,如果乘船的人分辨不清方向,只要觀測北鬥星和北極星就可以明白了。東晉訪問印度和斯裡蘭卡的高僧法顯在五世紀初乘船回國,他在記述這段歷程的《歷遊天竺記傳》中也說:
「大海瀰漫無邊,不識東西,唯望日、月、星宿而進。若陰雨時,為風逐去,亦無準。……至天晴已,乃知東西,還復望正而進。」
這就是說,大海之中瀰漫沒有邊際,無法分辨東西,只有依靠日、月和星辰來指示航向。如果在陰雨天氣,看不到日、月和星辰,就可能被風吹離航線,迷失方向。……只有等到天晴以後才能重新辨認方向,有希望恢復正確的航向前進。這表明天文導航是當時的唯一方法。
天文導航的方法在指南針用在航海上以後,仍舊沒有被遺棄,而是繼續得到充實和發展,跟指南針配合使用,相得益彰,把導航技術推向一個新階段。
徐兢在《宣和奉使高麗圖經》裡說:
「洋中不可住,唯視星鬥前邁;若晦冥,則用指南浮針以揆南北。」
意思是說,船在海中航行,不像陸上交通那樣可以晝行夜宿,夜間是不能隨意停泊的,必須繼續航行。航行的時候,晴天靠觀測星辰、北鬥來指引航向,陰天看不到星辰,就得靠指南浮針度量南北方向來導航了。
天文導航和指南針導航互相配合,就不會發生陰雨天迷航的事故,不管天陰天晴,都能沿著正確的航向前進。直到明朝,利用天文知識來指引航向,仍在航海中佔有重要的地位。跟隨鄭和下西洋的馬歡在《紀行詩》裡寫著:「弱水南濱溜山國,去路茫茫更險艱。欲投西城遙凝目,但見波光接天綠。舟人矯首混西東,唯指星辰定南北」(「弱水」指極西處的海城,「溜山國」就是現在的馬爾地夫),生動地描繪了當時的航海情景,以及天文導航的作用。
二、船舶方位的測定
在海中航行只能辨明方向是遠遠不夠的。如果只知道方向,但是從不同的位置出發,就可能發生極大的偏差,仍會迷失航向,不能順利地到達目的地。
為了保證船舶的順利航行,還必須了解它在海中的位置。這在周圍沒有什麼地物標誌的汪洋大海裡,只有通過對星辰的觀測才能做到。它的方法是通過觀測一些重要的方位星,比如北極星、北鬥星的出地高度,然後進行計算,就可以得知船舶的方位。
我國有重視觀測星辰的優良傳統。歷史上對星辰的觀測,不但在陸地上進行,而且很早就在海上進行。在《漢書·藝文志》中,已經列有《海中星佔驗》、《海中五星經雜事》、《海中五星順逆》、《海中二十八宿國分》、《海中二十八宿臣分》、《海中日月彗虹雜佔》等書目,表明當時在海中觀測星象的工作已經受到相當重視。
北齊的民間天文學家張子信,在一個海島上對日月五星進行了三十多年的觀測。這一在海中觀測星辰的傳統,為我國古代航海天文學的發展奠定了堅實的基礎。
同時,我國歷史上的測量數學非常發達,西晉的著名數學家劉徽就著有一部《海島算經》(又稱《重差》)的數學著作,內容是測量目的物的高和遠的計算方法,其中包括測量太陽的高和遠的方法。唐朝的著名天文學家一行組織人力對地球子午線進行了世界上第一次的測量和計算。元朝的著名天文學家和數學家郭守敬又進行了大規模的大地測量。
隨著航海事業的發展,人們終於把天文學和計算數學應用在航海上,形成了稱作「牽星術」的天文航海技術,用來測定船舶在海中的方位。也就是以「牽星高低為準」,通過所測量的星鬥高低位置,來計算船舶跟陸地距離的遠近,再從觀測日月的出沒,或者指南針的指向作用而得知方向,就可以確定船舶在海中的位置了。就象鞏珍在《西洋番國志 自序》裡所的:「在大海中航行,只見浩渺無際,水天相連,什麼也看不到,只有觀察日月升降來辨別東西,觀測星鬥高低來度量遠近。同時,在刻著方向位置的木製地盤上放著水浮指南針,用來指引航向。」
鄭和船隊的天文導航是由專人掌管的,稱作陰陽官和陰陽生。《三寶太監西洋記通俗演義》裡寫著,鄭和船隊裡有「觀星鬥陰陽官十員」,又說「每一號船上面,有三層天盤,每一層天盤裡面擺著二十四名官軍,日上看風看雲,夜來觀星觀鬥」。這雖然是小說裡的記載,但是也在一定程度上反映了當時天文航海術的實際情況。
三、天文航海圖和口訣、歌訣
為了便於人們在航海中應用,明朝還把天文航海的觀測結果編製成過洋牽星圖(就是天文航海圖)和天文航海歌訣。
現在發現的這方面最早的記述,是《鄭和航海圖》裡的「過洋牽星圖」和《順風相送》裡的天文航海口訣、歌訣,它們都是鄭和船隊航海盛舉的產物。
在《鄭和航海圖》裡收有「過洋牽星圖」四幅,分別是古裡(現在的印度西南部)往忽魯漠斯(現在的伊朗境內)、忽魯謨斯回古裡國、錫蘭山(現在的斯裡蘭卡)回蘇門答刺(現在譯蘇門答臘,屬印尼)、龍涎嶼(現在的蘇門答臘附近)往錫蘭(現在的斯裡蘭卡)的過洋牽星圖,實際上是從印度西部到伊朗以及從蘇門答臘到斯裡蘭卡兩段洋面的天文航海圖。來回航程所觀測的星辰方位不盡相同,反映了往返的季節不同,因此星位也有差異。
圖中北辰星就是北極星,「丁得把昔過洋,牽北辰星七指平水」,「到沙馬姑山看北辰星十四指平水」,意思是丁得把昔在北極星距離水平七指高的位置,船到沙馬姑山的時候,北極星距離水平十四指高,就是北極星是逐漸升高的,只有航向偏北才有這種現象。丁得把昔和沙馬姑山是印度洋中的兩個地名,它們在什麼地方,現在已無從查考。
在《鄭和航海圖》以指南針為主所繪製的圖中,也注有不少星辰的位置。比如 「華蓋五指二角」,表示在已龍溜(今斯裡蘭卡東南)這個地方,華蓋星(就是小熊星座β星、r星等八星)的高度距離水平五指二角。
《順風相送》裡的天文航海口訣、歌訣,包括有《觀星法》、《定太陽出沒歌》、《定太陰出沒歌(「太陰」就是月亮)等。
我國古代把星辰位置和日、月在十二個月份中的出沒方向編製成口訣、歌訣的形式,簡單易記,對航海者有一定的助益。過洋牽星圖和天文航海口訣、歌訣的出現,標誌著我國天文航海技術的進步,在遠洋航行中發揮了很大的作用。