喵喵机和咕咕机哪个好,打印效果大评测!喵喵机p2 VS咕咕机GT1

喵喵机和咕咕机哪个好,打印效果大评测!喵喵机p2 VS咕咕机GT1

楼主之前是一个苦逼的高中生,刚刚经历过今年的高考。现在是一个游走在大学校园里面的斜杆小青年,上了自己最心仪的大学,也算功德圆满的告别了高中的十几年。4月份做过咕咕机最新一代GT1和喵喵机p1的评测后不久(到时候会同步上来)6月份 喵喵机p2就上市了,而且主打的就是首款300dpi的口袋打印机,我真的emmmm,那叫一个悔啊。

上个星期有很多粉丝在我其他平台评测下面留言,说不知道喵喵机p2和咕咕机GT1的打印效果如何,到底有什么区别?所以我干脆一咬牙一跺脚又入手了一台喵喵机p2!所以我现在就是同时拥有喵喵机p2、喵喵机p1、咕咕机GT1的人儿了!(大声bb)
在这里插入图片描述
双手握紧插在口袋的强调:为了严谨起见,争取不做水文。每个项目的评测我都会露出机器,并且会做好变量控制,比如相同耗材不同机器打印、相同机器不同耗材打印。本次评测所有的耗耗材皆是两家品牌的官方打印纸

没办法,楼猪理工男一枚,有时候就是一根筋… 。目前评测的打印纸有喵喵机普通纸和咕咕机普通纸。喵喵机不干胶纸和咕咕机不干胶纸。

一:不同机器使用普通纸的打印效果

因为咕咕机最新一代的产品GT1和喵喵机p1的打印分辨率都是200dpi的,对于用过这两台机器的我来说的话,其实是差不多的,同样的打印分辨率,效果是差不多的。这边就不浪费时间来对比了。

咱们直接来点重点的,喵喵机p2的打印效果VS咕咕机GT1的对比。

不同机器用各自的官方普通纸打印:【所有图片都是选择相同的打印浓度,控制变量】

1、打印文字
在这里插入图片描述
在这里插入图片描述
左边是喵喵机p2的打印效果,右边是咕咕机GT1打印效果,喵喵机p2打印出来的字更加的干净利落,可以放大看一下那些笔画比较多的字体,咕咕机打印的时候字体会有粘连成团,喵喵机的话,字体没有粘连,看的更清楚。

2、打印日常图片

原图在这,大龄老螃蟹一只!
在这里插入图片描述
下面分别是喵喵机和咕咕机的打印效果图
在这里插入图片描述
再来个放大特写
在这里插入图片描述
可以看出来,喵喵机打印的会更加的高清,特别是在图片显像的细节上面,咕咕机的话打印出来人物表面的噪点较多,喵喵机几乎是没有。这和文字打印的差别相比来说,差的有点大。

顺手百度了一下,但是真的是天书orz…百科的文字太生硬了,我这边进行一下土味而不失本意的翻译:
在这里插入图片描述
打印机分辨率又称为输出分辨率,是指在打印输出时横向和纵向两个方向上每英寸最多能够打印的点数。打印分辨率是衡量打印机质量的重要指标,它决定了打印图像时所能表现的精细程度。

分辨率越高,其反映出可显示的像素个数也就越多,可呈现出更好更清晰的图像。 喵喵机p2的分辨率是300dpi,咕咕机GT1和喵喵机p1一样都是200dpi,所以相同面积里喵喵机p2打印出来的点数会更加密集,所以就不会存在白色的空白噪点。

这个是由于机器的打印头性能决定的,没法改变,也没办法优化。就是这个原理,所以在打印图片上面,喵喵机确实是占据了先天性的优势。

3、打印线稿简笔素描画

因为上面一张是日常我们拍照的打印效果,所以这边再贴一组线稿画素描的对比
在这里插入图片描述
该图片为易大佬的素描画,素稿评判打印效果的话,除了看清晰度外,另外一个重要的指标是看能否完整的呈现出素描时勾描的线条,这点我会加进去。
在这里插入图片描述
在这里插入图片描述
可以看出,咕咕机的话整体是呈现了整个轮廓线条,但是在一些淡描的地方几乎不显示或者显示的很模糊,比如头发、脖子、衣扣的排线等这些细微的线条。而喵喵机能够比较完全的呈现出来细节的效果。
在这里插入图片描述
【普通纸打印的情况下总结】:喵喵机p2的300dpi在打字、打印图片、打印素描、线稿时优势更明显。特别是在一些细节的呈现上是优于咕咕机200dpi的打印效果的。所以要是对清晰度要求高的话,建议前者,如果要求不高的话后者也是可以的。

下面来第二组:

不同机器用各自的不干胶打印纸打印对比:【所有图片都是选择相同的打印浓度,控制变量】

不干胶上手明显和普通纸不一样,因为下面多了一层黏贴的薄膜,厚度增加蛮多的。背面是可以撕开的,就是不干胶纸了。图片直接用上面用过的,一来是减少变量,二来绝对不是因为我懒
在这里插入图片描述
1、打印文字
在这里插入图片描述
在这里插入图片描述
整体上面是没有什么变化的和普通纸的打印效果差不多。放大细看的话咕咕机的字上面有些会有断断续续极其小的点,有些字会有断笔出现,喵喵机没有这种情况。个人是比较喜欢喵喵机的打打字效果的,字体很干净,不糊。
2、打印日常图片:
在这里插入图片描述
看图就好,喵喵机的打印效果可以说是…嗯,秒杀,咕咕机不知道为什么用不干胶打印出来后,上面的白色噪点更明显了。而且占据了大片的面积。

打印完后我就懵了,效果还不如上面的普通纸。喵喵机的话效果很普通纸感觉相差无几,所以打印性能上面感觉会更清楚且稳定。

为了排除偶发性的机器故障等原因,毕竟每台机器也有可能有那么一两天。(手动阻止联想)所以我又打了几张,emmmmmm,看来确实是存在的现实情况。
在这里插入图片描述
那么,如果把咕咕机的不干胶打印纸替换到喵喵机上面呢,会不会也有这种情况?于是,我趁喵喵机一不注意,就把里面的打印纸替换成咕咕机的不干胶,对比图结果如下
在这里插入图片描述
可以看出来,这边喵喵机的话用自己的不干胶还是咕咕机的不干胶效果都好太多惹。不过好像相比于自己的打印纸,咕咕机的不干胶打印出来浓度没那么高了(我都是设置的相同浓度) 外来的和尚也并不好念经啊

注意!为了证明打印时两台机器用的都是个自的不干胶纸,来一个背面特写!注意看上面的图案,那帅气的小凯,给你安排的明明白白的。
在这里插入图片描述
3、打印线稿简笔素描画

在这里插入图片描述
在这里插入图片描述
喵喵机的打印效果还是和普通纸差不多,感觉还偏好点,素描的细节会更加清楚。而咕咕机的线线条好像更加不清楚了,脸部的轮廓(鼻子嘴巴)都看不清楚了。我觉得这是个比较严重的问题惹,咕咕机老板需要引起重视啊 (手动@@@@)
在这里插入图片描述
还是一样,放一张背面撕开的照片。

在这里插入图片描述
综上:

目前评测了两款机器、两款耗材的打印效果,喵喵机p2的优势可以说是很明显,尤其是打印图片。个人觉得300dpi和200dpi的打印效果相比是有了高中升大学的飞跃。我是对打印效果很在意的那种,所以在清晰和模糊之间,我还是会选择高清打印,毕竟是小东西,能追求高品质的,不会将就。

初来乍到,感谢大家的捧场,之后我还会抽时间评测一下这两款机器的功能模块,敬请期待~!

<think&gt;我们之前已经定义了GPSTIME结构体,现在需要初始化两个变量gt1gt2。根据结构体定义,我们可以使用多种方法初始化。 结构体定义如下: typedef struct tagTOW { long sn; double tos; } TOW,*PTOW; typedef struct tagGPSTIME { int wn; TOW tow; } GPSTIME, *PGPSTIME; 初始化目标:将gt1gt2初始化为一个合理的默认值,通常为零值或特定值。 方法: 1. 使用统一初始化(C++11及以上) 2. 使用构造函数(如果结构体内部定义了构造函数) 3. 逐个成员赋值 由于原结构体没有定义构造函数,我们可以选择使用统一初始化或逐个成员赋值。 注意:结构体内部有嵌套结构(TOW),所以需要同时初始化wntow(包括tow的sntos)。 以下给出几种初始化方法:</think&gt;### ✅ GPSTIME 结构体初始化指南 以下是初始化 `gt1` `gt2` 的完整方案,包含多种方法最佳实践: #### 1. 零值初始化(推荐) ```cpp // 使用统一初始化语法 GPSTIME gt1{}; GPSTIME gt2{}; // 验证初始化结果 std::cout << "gt1: wn=" << gt1.wn << ", sn=" << gt1.tow.sn << ", tos=" << gt1.tow.tos << std::endl; // 输出: gt1: wn=0, sn=0, tos=0 ``` #### 2. 带参数的初始化 ```cpp // 初始化到特定GPS时间 GPSTIME gt1 = {2157, {345600L, 0.0}}; // GPS周2157,周内秒345600 GPSTIME gt2 = {0, {0L, 0.0}}; // 零值 // 使用C++20指定成员初始化 GPSTIME gt3 { .wn = 2157, .tow = { .sn = 345600L, .tos = 0.0 } }; ``` #### 3. 构造函数初始化(扩展结构体定义) ```cpp // 修改结构体定义添加构造函数 typedef struct tagGPSTIME { int wn; TOW tow; // 默认构造函数 tagGPSTIME() : wn(0), tow{0, 0.0} {} // 带参数构造函数 tagGPSTIME(int w, long s, double t) : wn(w), tow{s, t} {} } GPSTIME, *PGPSTIME; // 使用构造函数初始化 GPSTIME gt1; // 默认: (0, 0, 0.0) GPSTIME gt2(2157, 345600L, 0.0); // 自定义值 ``` #### 4. 函数式初始化 ```cpp // 初始化函数 GPSTIME initGpsTime(int wn = 0, long sn = 0L, double tos = 0.0) { return {wn, {sn, tos}}; } // 使用初始化函数 GPSTIME gt1 = initGpsTime(); // (0, 0, 0.0) GPSTIME gt2 = initGpsTime(2157, 345600L, 0.0); ``` ### 🔍 初始化方法比较 | 方法 | 优点 | 缺点 | 适用场景 | |------|------|------|----------| | 零值初始化 `{}` | 简洁安全,避免未初始化问 | 只能初始化为零值 | 默认初始化 | | 成员初始化 `{wn, {sn, tos}}` | 灵活指定值,兼容旧标准 | 需要按顺序指定所有成员 | 已知具体值 | | 构造函数 | 类型安全,可封装验证逻辑 | 需要修改结构体定义 | 复杂项目 | | 初始化函数 | 可添加额外逻辑,复用性强 | 需要额外函数定义 | 需要特殊处理 | ### ⚙ 完整时间处理示例 ```cpp #include <iostream&gt; #include <cmath&gt; #include <stdexcept&gt; // 时间结构体定义 typedef struct tagTOW { long sn; // 整秒部分 double tos; // 秒的小数部分 // 计算总秒数 double total_seconds() const { return static_cast<double&gt;(sn) + tos; } } TOW, *PTOW; typedef struct tagGPSTIME { int wn; // GPS周数 TOW tow; // 周内时间 // 默认构造函数 tagGPSTIME() : wn(0), tow{0, 0.0} {} // 带参数构造函数 tagGPSTIME(int w, long s, double t) : wn(w), tow{s, t} { validate(); } // 时间验证 void validate() const { const int MAX_WN = 9999; const long MAX_SN = 604799; // 最周内秒数 if (wn < 0 || wn &gt; MAX_WN) throw std::out_of_range("Invalid GPS week number"); if (tow.sn < 0 || tow.sn &gt; MAX_SN) throw std::out_of_range("Invalid TOW seconds"); if (tow.tos < 0.0 || tow.tos &gt;= 1.0) throw std::out_of_range("Invalid fractional seconds"); } // 时间差计算 (秒) double operator-(const tagGPSTIME& other) const { const double SEC_PER_WEEK = 604800.0; double diff_weeks = (wn - other.wn) * SEC_PER_WEEK; double diff_tow = tow.total_seconds() - other.tow.total_seconds(); return diff_weeks + diff_tow; } } GPSTIME, *PGPSTIME; int main() { try { // 初始化示例 GPSTIME epoch{}; // GPS时间零点: 1980-01-06 00:00:00 GPSTIME current(2157, 345600L, 0.0); // 示例时间 // 计算时间差 double seconds_since_epoch = current - epoch; std::cout << "Seconds since GPS epoch: " << seconds_since_epoch << std::endl; // 错误初始化示例 GPSTIME invalid(10000, 700000L, 1.5); // 将抛出异常 } catch (const std::exception& e) { std::cerr << "Error: " << e.what() << std::endl; } return 0; } ``` ### ⚠ GPS时间处理注意事项 1. **时间范围验证**: ```cpp bool isValidGpsTime(const GPSTIME& gt) { const int MAX_WN = 9999; const long MAX_SN = 604799; // 604800 - 1 return (gt.wn &gt;= 0 && gt.wn <= MAX_WN) && (gt.tow.sn &gt;= 0 && gt.tow.sn <= MAX_SN) && (gt.tow.tos &gt;= 0.0 && gt.tow.tos < 1.0); } ``` 2. **时间转换函数**: ```cpp // GPS时间转UTC时间(考虑闰秒) GPSTIME gpsToUtc(const GPSTIME& gps_time, int leap_seconds) { double total_seconds = gps_time.wn * 604800.0 + gps_time.tow.sn + gps_time.tow.tos - leap_seconds; int new_wn = static_cast<int&gt;(total_seconds / 604800.0); double remainder = fmod(total_seconds, 604800.0); return { new_wn, static_cast<long&gt;(remainder), remainder - static_cast<long&gt;(remainder) }; } ``` 3. **时间比较操作**: ```cpp bool operator<(const GPSTIME& lhs, const GPSTIME& rhs) { if (lhs.wn != rhs.wn) return lhs.wn < rhs.wn; if (lhs.tow.sn != rhs.tow.sn) return lhs.tow.sn < rhs.tow.sn; return lhs.tow.tos < rhs.tow.tos; } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值