看着像八卦,数数不是八卦,是29卦
每卦又有29个小弧
所以是29×29个bit
这29×29个bit怎么理解呢?并且从哪一卦开始到哪一卦结束?是先环向层层向里走还是先径向逐卦走?
我想不出来。
我猜测:
可能是这个二进制串可以翻译成某个ASCII字符串,可能这个二进制串是通过Base64编码过的,可能性太多了

问林教主。
林教主说:从圆心沿180度方向向外剪开,剪开之后就得到一个小扇子,这个小扇子其实是一个正方形,这个正方形图片就是一个二维码,拿出手机来一扫就进入一个URL链接,就大功告成了。

问怎么想出来的?
林教主说:二维码4个角处有3个正方形,看到了180度方向有两个正方形,这个八卦本身又像二维码。
问怎么转化成正方形二维码?
林教主说:一张笔一支纸一小时
我说:那还了得

这个可以编程实现。
关键是:根据(第几个扇形,第几个弧)两个变量可以求出来该小弧的颜色。

说起来简单,操作起来还是遇到不少问题:

  • 中间有一个小圆圈,这个小圆圈的半径必须求出来。这个问题可以通过图形化界面,鼠标悬浮一下大约估计一下。
  • 每个小弧的厚度必须求出来,这个当然可以根据第一个问题中小圆圈的半径求出来。
  • 这个图片格式是RGBA格式的,也就是说包含透明色,透明色默认就是白色,而不透明色可能是白色也可能是黑色,每个像素的RGB也不是纯黑纯白,所以需要“纯化一下”,让它变成非黑即白的模式。这是一个预处理的过程。

下面是代码,用PIL图片处理模块和tkinter两个模块

"""
图形化界面确定一些参数:比如中间圆圈的半径
"""
from PIL import Image, ImageTk
import tkinter
import mathwindow = tkinter.Tk()
img = Image.open("w.png")
sz = img.size[0]def init():# 预处理图片,使之变成纯黑纯白def getColor(c):# 去除噪声if c[3] == 0:return 255, 255, 255, 255if c[3] == 255:if c[0] > 128 and c[1] > 128 and c[2] > 128:return 255, 255, 255, 255return 0, 0, 0, 255for i in range(sz):for j in range(sz):img.putpixel((i, j), getColor(img.getpixel((i, j))))init()
image = ImageTk.PhotoImage(img)
canvas = tkinter.Canvas(width=image.width(), height=image.height())
canvas.pack()
canvas.create_image(sz / 2, sz / 2, image=image)def getBit(x, y):c = sz / 2  # 中心坐标r = 44  # 中心圆盘半径w = (c - r) / 29R = r + (x + 0.5) * wtheta = (math.pi * 2 / 29) * (y + 0.5)x, y = c - R * math.cos(theta), c - R * math.sin(theta)x, y = int(x), int(y)color = img.getpixel((x, y))return color[:3]def hover(e):window.title("%d,%d,%s" % (e.x, e.y, str(img.getpixel((e.x, e.y)))))def go():# 获取二维码图片ans = Image.new("RGB", (30, 30))for i in range(29):for j in range(29):ans.putpixel((i, j), getBit(i, j))ans = ans.resize((290, 290))ans.show("haha")def getParams():# 获取参数window.bind("<Motion>", hover)window.mainloop()# getParams()
go()

MegCup 2017 极客挑战赛 初赛试题相关推荐

  1. 银联高校极客挑战赛 初赛 第一场、第二场合集(3+3题)

    第一场 A. 码队女朋友的王者之路 测试用例 测试1 4 5 2 2 00101 5 1 2 11110 6 2 3 000000 7 6 6 0000001 测试2 1 1 1 1 0 测试3 1 ...

  2. 银联高校极客挑战赛 初赛 第二场

    开场几十分钟后才开始打的,实验室居然锁门了... A. 码队GO 左上.右下角为(1,1).(x,y)的矩阵的大小,dp处理 然后一个裸的二分答案 (1,1) (x,y) (x-k,y-k) 三个点 ...

  3. 近期活动盘点:首届Apache Flink 极客挑战赛、2019年社会计算机国际会议

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此: 7 月 24 日,阿里云峰会上海开发者大会开源大数据专场,阿里巴巴集团副总裁.计算平台事业部总裁贾扬清与英特尔高级首席工程师.大数据分析和 ...

  4. 报名 | 首届!Apache Flink 极客挑战赛强势来袭,重磅奖项等你拿,快来组队报名啦!...

    7 月 24 日,阿里云峰会上海开发者大会开源大数据专场,阿里巴巴集团副总裁.计算平台事业部总裁贾扬清与英特尔高级首席工程师.大数据分析和人工智能创新院院长戴金权共同发布首届 Apache Flink ...

  5. 26万奖金 | 第一届 E-MapReduce 极客挑战赛 诚邀英才前来挑战!

    日前," 第一届 E-MapReduce 极客挑战赛 "在阿里云天池官网正式开赛.据悉,本次大赛由阿里云.英特尔联合举办,聚焦 SparkSQL 执行效率,探索 TPC-DS 测试 ...

  6. 26万奖金 | 阿里云 E-MapReduce 极客挑战赛邀你来战!

    日前," 第一届 E-MapReduce 极客挑战赛 "在阿里云天池官网正式开赛.据悉,本次大赛由阿里云.英特尔联合举办,聚焦 Spark SQL 执行效率,探索 TPC-DS 测 ...

  7. 重磅!2017年度互联网转型企业TOP5发布 | 2017极客大奖年度评选

    经过三个多月紧张有序的评选,2017极客大奖(Geek Awards 2017)年度互联网转型企业TOP5榜单于今日重磅揭晓.结果显示,万达.苏宁.海尔.美的.TCL五家企业榜上有名,成为2017年中 ...

  8. 第三届Apache Flink 极客挑战赛暨AAIG CUP攻略发布!

    简介:阿里云 周云峰(云岩).淘系技术部 黄家明(明小)两位老师共同解读第三届Apache Flink 极客挑战赛暨AAIG CUP赛题内容 本文作者:阿里云 周云峰(云岩).淘系技术部 黄家明(明小 ...

  9. 第三届 Apache Flink 极客挑战赛暨 AAIG CUP 报名开始!

    简介:万众期待的第三届极客挑战赛,报名进行中- 伴随着海量数据的冲击,数据处理分析能力在业务中的价值与日俱增,各行各业对于数据处理时效性的探索也在不断深入,作为主打实时计算的计算引擎 - Apache ...

最新文章

  1. 京津冀计算机学科大学排名,2021京津冀地区大学排名!北师大第3,北航第7,人大不敌天大?...
  2. 用x64汇编优化8位S盒置换(三)
  3. Linux字符设备与块设备的区别与比较
  4. python pip下载安装教程_Python下的常用下载安装工具pip的安装方法
  5. rstudio安装后打不开_R与RStudio最简单安装指南
  6. KernelShark Documentation
  7. 2016计算机知识点,2016年计算机一级考试知识点
  8. T4 Templates and the Entity Framework
  9. linux 文件读写锁,linux下的简单文件读写锁的操作
  10. 一款开源Office软件---Lotus Symphony在Linux系统下的应用
  11. MVC模式在游戏开发的应用
  12. 手机上将png转pdf_如何在Windows 10上将Android智能手机用作网络摄像头
  13. 【分享】李涛ps入门教程视频全集及精心整理包含素材
  14. Hello CTP(七)——REM交易API
  15. android 8.0手机无法更新版本,微信8.0更新不了是什么情况?安卓微信更新不了新版本怎么办?...
  16. ubuntu之使用wine微信之无法发送图片
  17. 厦门故事(二):这是我第一次发现,原来风声可以这么好听
  18. java mp3转midi_javax_sound_midi-_player 将mid音频文件用java来实现它的播放和使用 - 下载 - 搜珍网...
  19. 【数据报表中心】强大的迈安2019年大数据分析有哪些工具
  20. 算法的时间复杂度取决于:

热门文章

  1. easyui关于dialog弹出位置的问题记录
  2. Mbatis是什么?怎么运行?
  3. 深入剖析Redis RDN持久化机制
  4. 为什么工具监测不出内存泄漏
  5. easyui源码翻译1.32--panel(面板)
  6. 【使用C语言的7的步骤】
  7. C++之第一个程序Hello World,使用IO库输出Hello World
  8. Solr单机安装Version5.5.2
  9. Java的数据库编程之入门案例
  10. Struts2之文件下载