东汉伏波将军马援

东汉时期名将辈出,比如燕然勒石的窦宪,还有收复西域五十多国的班超,此外还有一个人虽然声名不显,但战绩斐然,他就是马援。
马援,东汉初期著名军事家,出生于公元前14年,扶风郡(今陕西一带)人,曾祖父马通是汉武帝时期的大臣,父亲马仲曾官至玄武司马。
马援年少时就胸怀大志,常常想着干出一番大事业。西汉末年王莽篡政,建立新朝,天下大乱,军阀四起,马援投靠了陇西军阀隗嚣,后又投靠光武帝刘秀,为稳固东汉政权立下赫赫战功。

归顺刘秀后,马援开始南征北战。建武十一年(公元35年)刘秀任命马援为陇西太守,平定塞外羌族叛乱,马援率步骑兵三千余人在甘肃临洮大败羌人,斩敌数百人,俘获牛羊上万头,八千多名羌人望风而降。
公元37年,羌人再次叛乱。马援奉命率四千余人前去平乱,切断羌人水源,羌人不敢与汉军决战,首领带领几十万户人逃到塞外,剩下的人选择了投降,羌族叛乱再次被平定。

公元40年,征侧、征贰两姐妹在交趾郡起兵造反,公然与东汉为敌,交趾各部族纷纷响应,叛军在短时间内占领东汉岭南一带六十多座城池,声势浩大。
公元42年,光武帝刘秀任命马援为伏波将军,领兵平定交趾叛乱。马援领兵到达岭南后,一路势如破竹,大败交趾叛军,斩敌数千人,降者过万。公元43年,马援斩首叛军首领征侧、征贰两姐妹,平定交趾叛乱,因军功被封为新息侯。

平定交趾后,马援下令在当地立下两根铜柱作为汉朝最南的边界,并在铜柱上刻上“铜柱折,交趾灭”六个大字,警告交趾人不要毁坏铜柱。马援立铜柱的地方一般认为在现在越南中部的广平,广治一带,这两根铜柱让交趾人近百年不敢作乱,直到东汉末年中原大乱,交趾人才再次起兵造反。
公元48年,武陵郡五溪蛮发生叛乱,刘秀派武威将军刘尚前去平定叛乱,不料刘尚轻敌大意,竟然全军覆没。这时已经62岁高龄的马援请求领兵出战,公元49年马援领兵击败叛乱蛮兵,斩敌两千余人,叛军逃入深山, 据险而守。
当时天气酷热,很多汉军都染上暑疫身亡,马援也染上了疾病,但每天仍然坚持带病巡查。当时马援军中有个叫耿舒的将领,因为与马援不合,就给刘秀写信状告马援指挥不利,导致汉军受挫。

刘秀收到信后,立即派中郎将梁松前去问责马援,并代为监管军队。不过等梁松到时,马援已经病死了。这梁松也一直与马援不合,于是趁此机会大肆诬陷马援,罗列了很多莫须有的罪证,马援已死,自然没法为自己辩驳。
刘秀收到梁松罗列的马援罪证后,勃然大怒,下令收回马援新息侯的印绶,剥夺他的爵位,直到二十多年后,汉章帝上位后才得以平反,追谥“忠成”,唐朝时被列为武庙六十四将之一。
马援戎马一生,死后却被剥夺爵位,这对他来说是极不公平的,也是极其可悲的。历朝历代都不缺乏搬弄是非的小人,甚至不少朝代都亡在了一些小人手上,不过好在马援最终被平冤昭雪,还他了一个清白。

AutoCAD 函数系列之二

Private Function GetAngle(ByRef APoint() As Double, ByRef BPoint() As Double) As Double ‘X – Y 坐标系内 ① ② 两点连线的角度
Dim XDiff, YDiff As Double
XDiff = BPoint(0) – APoint(0)
YDiff = BPoint(1) – APoint(1)
Dim dTemp As Double
‘①––––②
If XDiff > 0 And YDiff = 0 Then ‘X 轴右段
GetAngle = 0 ‘弧度
End If
‘––––②
‘–––/
‘––/
‘–/
‘①
If XDiff > 0 And YDiff > 0 Then ‘第一象限
dTemp = YDiff / XDiff
GetAngle = Atn(dTemp) ‘弧度
End If
‘②
‘|
‘|
‘|
‘①
If XDiff = 0 And YDiff > 0 Then ‘Y 轴上段
GetAngle = 0.5 * PI ‘弧度
End If
‘②
‘–\
‘––\
‘–––\
‘––––①
If XDiff < 0 And YDiff > 0 Then ‘第二象限
dTemp = Abs(XDiff) / YDiff
GetAngle = 0.5 * PI + Atn(dTemp) ‘弧度
End If
‘②––––①
If XDiff < 0 And YDiff = 0 Then ‘X 轴左段 GetAngle = 1 * PI ‘弧度 End If ‘––––① ‘–––/ ‘––/ ‘–/ ‘② If XDiff < 0 And YDiff < 0 Then ‘第三象限 dTemp = Abs(YDiff) / Abs(XDiff) GetAngle = 1 * PI + Atn(dTemp) ‘弧度 End If ‘① ‘| ‘| ‘| ‘② If XDiff = 0 And YDiff < 0 Then ‘Y 轴下段 GetAngle = 1.5 * PI ‘弧度 End If ‘① ‘–\ ‘––\ ‘–––\ ‘––––② If XDiff > 0 And YDiff < 0 Then ‘第四象限
dTemp = XDiff / Abs(YDiff)
GetAngle = 1.5 * PI + Atn(dTemp) ‘弧度
End If
‘①×②
If XDiff = 0 And YDiff = 0 Then ‘原点
GetAngle = 0 ‘弧度
End If
End Function

Private Function GetDistance(ByRef APoint() As Double, ByRef BPoint() As Double) As Double ‘数组做参数, 两点的矢量距离
‘获得从 APoint 至 BPoint 的有方向距离,从西到东的扇形面积内为正(边界定义如下,正北到正南为负,正南到正北为正)
GetDistance = (BPoint(0) – APoint(0)) ^ 2 + (BPoint(1) – APoint(1)) ^ 2 ‘图形单位
GetDistance = Sqr(GetDistance) ‘图形单位
Dim iSign As Integer
If GetAngle(APoint, BPoint) > 0.5 * PI And GetAngle(APoint, BPoint) <= 1.5 * PI Then
iSign = -1
Else
iSign = 1
End If
GetDistance = iSign * GetDistance
End Function

Private Function GetSide(ByRef APoint() As Double, ByRef BPoint() As Double, ByRef CPoint() As Double) As String ‘数组做参数
‘判断点 CPoint 在从点 APoint 至点 BPoint 形成的有方向直线的哪一侧
Dim Vector01X As Double
Dim Vector01Y As Double
Vector01X = BPoint(0) – APoint(0)
Vector01Y = BPoint(1) – APoint(1)

Dim Vector02X As Double
Dim Vector02Y As Double
Vector02X = CPoint(0) – APoint(0)
Vector02Y = CPoint(1) – APoint(1)
Select Case Vector01X * Vector02Y – Vector02X * Vector01Y
Case 0
GetSide = “ABOVE”
Case Is > 0
GetSide = “LEFT”
Case Is < 0
GetSide = “RIGHT”
End Select
End Function

Private Function GetPosition(ByRef APoint() As Double, ByRef BPoint() As Double, ByRef CPoint() As Double) As String ‘数组做参数
‘判断点 CPoint 在从点 APoint 至点 BPoint 形成的有方向直线的哪一段,三点不共线 返回 -1
GetPosition = “-1”
If Not GetSide(APoint, BPoint, CPoint) = “ABOVE” Then Exit Function
If GetDistance(APoint, BPoint) >= 0 And GetDistance(APoint, CPoint) >= 0 Then
If GetDistance(APoint, BPoint) >= GetDistance(APoint, CPoint) Then
GetPosition = “INSIDE”
Else
GetPosition = “FRONT”
End If
End If
If GetDistance(APoint, BPoint) < 0 And GetDistance(APoint, CPoint) < 0 Then If GetDistance(APoint, BPoint) < GetDistance(APoint, CPoint) Then GetPosition = “INSIDE” Else GetPosition = “FRONT” End If End If If GetDistance(APoint, BPoint) >= 0 And GetDistance(APoint, CPoint) < 0 Then GetPosition = “REAR” End If If GetDistance(APoint, BPoint) < 0 And GetDistance(APoint, CPoint) >= 0 Then
GetPosition = “REAR”
End If
End Function

西汉伏波将军路博德

路博德西河平州(今山西离石)人,生卒年不可考,曾任右北平太守,右北平不是一个普通的郡县,“飞将军”李广就曾经在这里担任过太守,而右北平郡治在平刚县平刚城(治今内蒙古宁城县西南),是大汉帝国与匈奴交战的前线。路博德为西汉武帝时期重要将领,于元狩四年汇合骠骑将军霍去病,大败北匈奴,立下赫赫战功,被刘彻下诏封为符离侯。

到了元鼎四年,也就是公元前113年,南越王婴齐薨,太子兴代立。

汉武帝元鼎五年(公元前112年),南越王相吕嘉发动叛乱,杀害汉朝使节和南越王赵兴及王太后,武帝任命路博德为伏波将军、杨仆为楼船将军,南越人听说是路博德过来征讨纷纷投降,而路博德则继续派人追捕直至砍下了吕嘉的头颅。

也是在伏波将军南下肃清残敌的时候在岭南地区设立了珠崖、儋耳两郡,路博德不仅有足够的武勇,还足智多谋,他进攻海南岛后,为了安定人心,将一些战船焚掉,表示平息叛乱后,将不再用兵,百姓可安居乐业,这也是他“兵不血刃,而定全粤”的一个缩影。

后来路博德后因犯法夺取爵位,改任强弩都尉,余生都屯守在居延,替大汉镇守边疆。

拖动窗体

Option Explicit
Private Declare Function GetCursorPos Lib “user32” (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim bMoveForm As Boolean, LastPoint As POINTAPI

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim POINT As POINTAPI
GetCursorPos POINT
LastPoint.X = POINT.X
LastPoint.Y = POINT.Y
bMoveForm = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim iDX As Long, iDY As Long
Dim iTPPX As Long, iTPPY As Long
iTPPX& = Screen.TwipsPerPixelX
iTPPY& = Screen.TwipsPerPixelY
Dim POINT As POINTAPI
If Not bMoveForm Then Exit Sub
GetCursorPos POINT
iDX& = (POINT.X – LastPoint.X) * iTPPX&
iDY& = (POINT.Y – LastPoint.Y) * iTPPY&
LastPoint.X = POINT.X
LastPoint.Y = POINT.Y
Me.Move Me.Left + iDX&, Me.Top + iDY&
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
bMoveForm = False
End Sub

溪州之战

在今天的湖南省湘西土家族苗族自治州,永顺县王村芙蓉镇的“湘西民俗风光馆”内,陈列着 溪州铜柱,被国务院1961年列为国家第一批重点保护文物。

溪州铜柱,是五代十国时期楚国第三任楚王马希范与武陵五溪土司彭士愁盟誓为约所立。溪州铜柱高约4米,直径约40厘米,重约5000斤,铜柱铭文2619个字,均是楷体字,字体秀丽。

马希范(899年-947年),字宝规,马殷的第四子,932年楚国第三任楚王。彭士愁(903年-956年),生于江西吉水,长于湘西,938年承袭父职任溪州刺史。

相传彭士愁的父亲彭瑊(读jian间)、伯父彭玕(读gan甘)在唐末黄巢起义时组织乡兵自保,逐渐成为割据江西吉州的地方军阀。五代十国时期,受不了吴国的压迫而向西投奔楚国。彭氏兄弟入楚后,得到楚王马殷的器重,分别委以重任。

马殷还为儿子马希范自小定下彭玕之女为妻,青梅竹马。马希范继任楚王后,封妻子为顺贤夫人。顺贤夫人相貌不美,但是治家有道,马希范有点惧怕她。

公元910年,楚王马殷任命彭瑊担任溪州刺史,经营湘西。923年,马殷任命彭瑊为靖边都指挥使兼任溪州刺史,统领武陵五溪地区。938年,彭瑊去世,彭士愁继承父位,担任溪州刺史。彭士愁得到五溪诸蛮的拥护,势力雄厚,在今湖南湘西(包括湖北来凤、咸丰、宣恩,重庆东部,贵州东北部),建立起一个强大的少数民族地区的割据政权。

公元932年,马希范继位楚王,之后,对溪州增加赋税,引起彭士愁的不满。这种矛盾在顺贤夫人在世时还可以调解缓和。然而到938年12月,顺贤夫人去世后,彭士愁与马希范的矛盾便开始激化,针尖对着麦芒。

公元939年8月,彭士愁发动溪、锦、将三州万余蛮人,侵犯楚国辰州、灃州(今怀化沅陵和常德灃县)。9月,楚王马希范命令左静江指挥使刘勍、决胜指挥使廖匡齐,领兵五千讨伐,溪州之战爆发。11月,彭士愁兵败,逃入深山。楚军追至溪州,彭士愁撤出溪州都城,即永顺县老司城,退据山寨,依靠四面悬崖绝壁作天险,抵抗楚兵。

廖匡齐带兵架梯往山寨攻击,寨内射出弓箭,箭如雨下,楚兵败退,廖匡齐战死。不久,刘勍再次组织进攻,并截断彭士愁的水源和粮道。有一天趁着大风,刘勍命令楚军用火箭射入山寨,寨内的茅草房和木质防御栅栏全部被烧毁,士兵死伤惨重。彭士愁乘黑夜率兵冲下山,向锦州、奖州的深山撤退。

之后不久,彭士愁派他的次子彭师暠(读hao号),带领各山寨酋长和头领,向楚国请降,表示一心归顺,湘西各民愿意服从楚国。双方谈判之后,缔结盟约,同意在酉水河畔会溪坪铸立铜柱。

公元940年初,马希范仿照先祖伏波将军马援“平征侧于龙编,树铜柱于象浦”,与彭士愁盟誓立铜柱为约,化干戈为玉帛,把战争的原因、经过、议和的条款,都清楚明白地刻在铜柱上。

一来,表明楚国对少数民族的羁縻笼络政策原则: 古者叛而伐之,服而柔之,不夺其财,不贪其土。前王典故,后代蓍龟(读shigui时归,借鉴的意思)。吾伐叛怀柔,敢无师古;夺财贪地,实所不为。

楚王马希范承诺: 尔能恭顺,我无科徭,本州赋租,自为供赡,本土兵士,亦不抽差。永无金戈之虞,克保耕桑之业。任命彭士愁仍然担任溪州刺史(土司),可以世袭。

二来,用立铜柱的铭物方式,让这项政策 不因王权更替而废止。铜柱立在辰州会溪城西南一里处,是双方盟誓为约、立柱为信的证物;当然,也是界碑,马希范与彭士愁划江而治,酉水之南归马希范,酉水之北归彭士愁。

自此以后,经历五代十国、宋、元、明、清等朝代,马希范与彭士愁达成的五溪治理模式,被历朝历代继承。公元960年,赵匡胤建立宋朝,沿袭五溪治理模式。

公元1271年,忽必烈建立元朝,完善五溪治理模式,将土司纳入国家统一职官体系,成为王朝统辖地方的行政官员,正式建立中国土司制度。

公元1368年,朱元璋建立明朝,沿袭土司制度治理中国西南地区。公元1636年,皇太极建立清朝, 沿袭土司制度。公元1728年,清朝雍正六年,“改土归流”,土司制度终止。

彭氏在湘西的土司政权,从910年彭瑊任溪州刺史时算起,到1728年清朝“改土归流”时终止,长达八百一十八年。封闭自守的溪州彭氏土司,依仗着溪州铜柱的铭文保护,偏安一隅,造福一方,连续承袭二十八代。溪州各族人民也得享800多年没有边患战乱的相对安定的生活。彭士愁被土家人视为土司王神和祖先神之一。

在武陵五溪地区,称呼汉族为“客家”。马楚时期,各民族之间关系融洽。苗族马姓, 苗语叫“khuat rangs夸然。“khuat夸”是“客”,“rangs然”是“龙”,“khuat rangs夸然”就是 客家之龙

在中华文化中,龙是王、是皇帝。在五代十国时期的湖南,谁是王、是皇帝呢?马殷、马希范就是。

中国姓马的人很多,苗族也有很多人姓马,如果你听到一个苗族人告诉你说,他姓马,苗语是“khuat rangs夸然”,那 多半与五代十国的马氏楚国有关,是同一家人,是同一种骏马。马姓苗族称为“khuat rangs夸然”,就是这样来的。