索菲亚的歌--哈尔滨游记


    朝阳半倾,教堂的钟声兀自领鸽子在广场上盘旋着,我找了一个美美的角度,终于按下了来到哈尔滨以后的第一次快门。
北京到哈尔滨的火车上,看着窗户外面的彩色世界一点一点地被抹成白色,心情顿时安静了下来。耳朵里塞着Nick的蓝调,缓慢而略带哭腔的男音更像是低沉的祷告,慢点,再慢点,我手边的卡布奇诺还热着,我们的这条路才刚刚开始。
    四点半的东三省就已经天黑了,路过铁岭的时候旁边的东北大姐跟我妈正在一起抨击体态臃肿的贵妇穿貂皮大衣比熊瞎子挤公交更有既视感。我也终于回复完了最后一封工作邮件,给自己的工作先画上了一个小逗号。
    下车的时候感觉呼吸都变得冰冷,多亏了我们的中国好队友一再提醒在这里衣着的重要性,我也终于妥协,穿上了我弃置很久的羽绒服,效果是立竿见影的。
    中央大街始终轻声地播着一些耳熟能详的曲子,回荡在凹凸不平的面包砖上。从圆顶屋间隙里漏下的几缕光把影子拉得老长,路牌也就懒洋洋得把西十四街和中央大道握在了一起。我也终于从俄罗斯大叔的店里知道了原来套娃和不倒翁不是同一样东西,原来坏链条和旧齿轮再焊上几根破钉子上色之后就能变成一个异形战士,原来俄罗斯人在说话的时候我真很担心他们会不会咬到自己的舌头。


                         
    看工作人员在拿铲子将一整个冰块铲出了个熊大的样子来,我在旁边弱弱地问了句:“熊大没耳朵?”铲冰的小伙拿出图纸一核对,愤愤地把熊大的脑门往下铲了五公分才留出一对尖尖的小耳朵。
    从地下通道钻到江边,我自告奋勇地想体验下冰滑梯,交钱买票后排队伍前面一戴红鸭舌帽哥们还在胆战心惊地问身后的工作人员说:“我万一没坐好给甩出去也算玩了一次对吧?”老头翻个白眼一脚就给踹下去了,那哥们鸭舌帽和尖叫声一起飞了好远好远。雪橇犬安安静静地趴在冰面上,旁边没角的驯鹿看起来更像“神马”。

                         
    下午四点左右,母后大人又一次发挥自己当年上海世博会一个人盖遍亚非拉国家纪念章的铁人精神,把我们扔到麦当劳点了几杯咖啡就接着逛街逛商场为哈尔滨中央大街踊跃地做出财政贡献的战争中去了。就连那杯现磨黑咖啡加糖不加糖没区别口感巨苦的事也没来得及吐槽。
    去雪乡这件事情最开始的准备是非常不充分的,细化到执行的时候才发现自助游压力太大,变数太多,但是如果报散团的话,各种旅行团的障眼法玩得美轮美奂,各种隐形消费举不胜举,各种坑法让我亲切地觉得雪乡改名叫血坑更合适。
    几经周折,我们还是妥协以小团形式参加了一个旅游团,虽几经波折,还是相对圆满滴。回程的路上我在想,总的来说,只能说我们已经成功地将这趟雪乡之行的损失降到了最低。
    之前只是听说过《爸爸去哪儿》这个栏目好像在这里进行过拍摄,但是并没有关注过,既然都来哈尔滨了,也就想顺带去雪乡猫一眼,想看看电视里面的雪房子。早晨四点半起床,稍加收拾就踏上了征程,雪乡其实已经不在哈尔滨市了,应该是松花江市的延庆县的一个极其偏僻的小村落,据说是上世纪九十年代照相还全凭胶卷的那个岁月,几个摄影爱好者闯进了双峰林场,结果拍光了身上的所有胶卷,然后这里就出名了,而《爸爸去哪儿》这个栏目更是把这个地方推到了知名度的顶峰,引得全国各地的人们纷至沓来。
    我们拼的团一共有40个人,槽点太多,竟不知从何吐起。坐我们后面的是一行8名四川来的lady,事实证明,这八名大婶可能是生活压力过大,在来回雪乡的近12个小时的车程里,从东家长扯到西家短,耳机里的慢摇竟也掩盖不了他们纵情的欢笑,有五音缺了两对半硬想唱山歌的,有为了座位打抱不平瞎来劲的,更有摘下帽子就想和前排地中海大叔打情卖俏的,岂是一个聒噪了得?车上的导游嘴快脑慢,倒也普通,拿准了身后几位阿姨不差钱就差事的心理,硬生生得帮他们每个人都花了一千多块钱升级成了这次拼团里面的VIP中P。有钱就是任性这个事情在这次的小团里体现得淋漓尽致,据我不完全统计,全车40人貌似只有我们一行四人没给导游掏钱的,剩余的不是VIP就是VIP中P,有壕花一千二住单间的,该壕本该是晚上和我们挤5人火炕间的,拔了萝卜地皮宽,我们也幸运地享受到了壕带来的舒适。晚上和驴友闲聊时才了解到,1K其实包含3个大项原来是这么坑人滴,体验雪地摩托还好算是三个项目里最有体验感的一个,只不过导游出发时信誓旦旦地说山顶上气温之低导致相机和手机会失灵,其实我们在刚下车的那一刻我们就已经发现了,不用上到山顶,我随身的平板就算在山脚也给冻傻了。林海穿越是这几个项目里可以说最坑的一个,360块钱其实就是从集合点走10分钟到乘坐雪地摩托的地方,途径半腿高的雪坡,前面带路的向导往深处迈了一步,积雪就掩到了向导的大腿,于是向导红光满面地对大家讲道“看到了吧?里面的雪太深了哈,而且很可能有雪洞,大家跟紧队伍别掉队吼。”还有第二天早上的影视基地游览,倒也不是这个游览有多坑,而是这个时间太坑,大家来雪乡无非是想多在雪乡逛逛,结果前一天在半山腰上耽误了大半天的时间,到雪乡已经下午快6点,折腾来折腾去吃过饭安排好住的地方已经晚上8点左右,顶多欣赏一下雪乡的夜景,结果这帮苦逼的VIP中P六点被叫醒吃饭,七点集合出发奔着半山腰的影视基地去,回来就是上午九点半,十点开午餐完事直接回哈尔滨,怎么想怎么有点被人卖了还帮人家数钱的赶脚,怪不得头一次下车后导游偷偷把我拉到一边问我,不当VIP中P是如果差钱的话他可以给我们五折优惠价,我也诚恳地告诉他,没兴趣,没必要。

    雪乡买门票的时候才知道,原来90后是可以打五折的,早知道我们就要求他返券了,失策失策,反思一下看来我也有被坑的时候啊。说到这里我就不得不说一句了,都在急着想给90后这代人下定义,我觉得比较中肯的是90后的一代应该是最“自我”的一代,这群人有自己的想法,无论是对是错,是好是坏都有自己的想法,尽管有时候我们分辨不了固执己见和坚持自我的界限,但是每次在被别人的洗脑之前,我们已经对这件事情有了一个预判;尽管很大部分原因出自主观,但是这群人敢坚持,不喜欢的就是不喜欢,不开心就是不开心;尽管我们所偏执的结果有好有坏,但是我们敢接受,并且从不逃避。这可以说是本次旅行最大的收获,就是这点认识,也可以说我们耳根子硬,更可以说我们水火不进,说这群人离经叛道不听劝,但我觉得这也是一种腔调,一种与生俱来的腔调,一种年轻人爱闯爱拼搏的腔调。

                           

    回到我们的旅途,就雪乡的景色而言,还是很美好很美好的,群山环抱,白雪皑皑,走在雪乡的路上积雪被压得嘎吱嘎吱响,鞋底还反着光。因着我们队伍的坚持,我们争取来了宝贵而充裕的雪乡游览时间,看看雪房子,找找石头,天天他们住过的小屋,偷偷摸摸地在各个取景收费的牌子边竖中指合影。整个雪乡之行最令我惊讶的应该是司机,这个地方的平均气温在零下30度左右,想来这路上的冰雪也薄不到哪去,但是我偶然间撇见貌似我们乘坐的旅游车轮胎上居然没有防滑链,看来这司机也是个手眼通天的人物,“黑白两道”通吃呀。

    夜幕下的哈尔滨闪着银光,各式各样的灯光印着雪,泛出美丽的光圈,不知道该在什么地方,以什么样的角度,调什么样的焦距来记录下这份妖娆,只能寄希望于我日渐匮乏的文笔来写下这一份景致。

    前几日在雪乡的团餐对我们而言绝对是一次创伤,难以弥补的,所以带着老妈义无反顾地杀进一个地地道道的东北菜馆,锅包肉,酱香肘,还有听起来很唬人的东北大水饺,一定要把这两天积攒下来的饥饿感扼杀在摇篮中。作为一个职业的吃货,这点自信还是得有滴。

    雪博会和冰雪大世界实际上乏善可陈,最大的感受就是真XX的冷,我最不擅长的事情就是观景,人家眼里的名胜古迹如果没有可以让我尽情玩耍的项目的话我的热情也就随着身体的温度一起降低到室外气温了。

    回家的路很漫长,8个字总结了下这次旅程,收获颇丰,感慨颇深。

    再见,哈尔滨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Cesium中使用DynamicLayer3D来实现一个s3m模型绕索菲亚大教堂循环飞行的话,可以按照以下步骤进行: 1. 导入索菲亚大教堂的3D模型(s3m格式),并将其添加到Cesium场景中。可以使用以下代码: ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); var sophiaModel = viewer.scene.primitives.add(Cesium.Cesium3DTileset.fromAsset('sophia.s3m')); ``` 2. 创建DynamicLayer3D对象,并将其添加到场景中。可以使用以下代码: ```javascript var dynamicLayer = new Cesium.DynamicLayer3D(viewer.scene.context); viewer.scene.primitives.add(dynamicLayer); ``` 3. 创建一个循环动画,使模型绕大教堂飞行。可以使用以下代码: ```javascript var startAngle = 0; var deltaAngle = Cesium.Math.TWO_PI / 360; var center = Cesium.Cartesian3.fromDegrees(23.7277, 37.9817, 50); viewer.clock.onTick.addEventListener(function (clock) { var angle = startAngle + clock.currentTime.secondsSinceStart * deltaAngle; var position = new Cesium.Cartesian3(Math.sin(angle) * 100, Math.cos(angle) * 100, 0); position = Cesium.Matrix4.multiplyByPoint(sophiaModel.modelMatrix, position, position); var eye = viewer.camera.position; var direction = Cesium.Cartesian3.subtract(position, center, new Cesium.Cartesian3()); var up = Cesium.Cartesian3.normalize(Cesium.Cartesian3.cross(direction, viewer.camera.right, new Cesium.Cartesian3()), new Cesium.Cartesian3()); viewer.camera.lookAt(position, new Cesium.HeadingPitchRange(0, -Cesium.Math.PI_OVER_TWO, Cesium.Cartesian3.distance(eye, position)), up); dynamicLayer.clear(); dynamicLayer.add(position, sophiaModel.boundingSphere.radius * 2); }); ``` 这段代码在每一帧中计算出模型的位置,然后将相机的视角调整到这个位置,并将模型添加到DynamicLayer3D中。最后,调用clear方法清除上一帧添加的模型。 4. 运行以上代码,模型就会绕大教堂循环飞行了。 需要注意的是,以上代码只是一个简单的示例,可能需要根据具体情况进行调整。同时,由于DynamicLayer3D是一个比较新的功能,可能还存在一些问题和限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值