12行javascript代码绘制一个八卦图


Posted in Javascript onApril 02, 2015

一句话说明:用有限的代码构建一个1024*1024的颜色矩阵,秀出你的编程&艺术之美

起源于 stackexchange 上的一个问题, 这里稍微做了一下扩展,支持更多编程语言,并放宽了代码长度的限制。
规则

目标:
通过实现 模版 中的一个函数 get_color_at(x, y) ,在一个 1024*1024 的画布上画出尽可能 “有意思” 的图案。

参数:
int x, int y ,取值均为 0 - 1023,对应画布上坐标点,左上角为起始点 (0,0)

返回:
int r, int g, int b, int alpha, 对应颜色的 RGBA 分量,均为 0 - 255。

注意:
各语言中 alpha 分量定义可能不同,由 模版 统一转换为: 0 - 255,值越大越透明。

要求:
只能编辑 模版 中 get_color_at(x, y) 函数体内 // {{code start}} - // {{code end}} 间的代码;
代码总字符数不能超过 1024 个,且有较好的可读性。

if(typeof f_c=="undefined"){
  f_c=function(x,y,px,py,r){
    return Math.sqrt(Math.pow(x-px,2)+Math.pow(y-py,2))<=r;
  };
}
var x0=x-512,y0=y-512;
r=g=b=128;
if(f_c(x0,y0,0,0,512)) r=g=b=(x0>0)?255:0;
if(f_c(x0,y0,0,256,256)&&x0<=0) r=g=b=255;
if(f_c(x0,y0,0,-256,256)&&x0>0) r=g=b=0;
if(f_c(x0,y0,0,256,64)) r=g=b=0;
if(f_c(x0,y0,0,-256,64)) r=g=b=255;

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
Jquery实现简单的动画效果代码
Mar 18 Javascript
js传参数受特殊字符影响错误的解决方法
Oct 21 Javascript
Jquery 获取对象的几种方式介绍
Jan 17 Javascript
原生Javascript封装的一个AJAX函数分享
Oct 11 Javascript
分享9点个人认为比较重要的javascript 编程技巧
Apr 27 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
获取当前按钮或者html的ID名称实例(推荐)
Jun 23 Javascript
BootStrap modal实现拖拽功能
Dec 01 Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
Sep 14 Javascript
JS实现横向轮播图(初级版)
Jun 24 Javascript
JavaScript实现放大镜效果代码示例
Apr 29 Javascript
javascript实现随时变化着的背景颜色
Apr 02 #Javascript
javascript中call和apply的用法示例分析
Apr 02 #Javascript
原生js实现类似弹窗抖动效果
Apr 02 #Javascript
JavaScript显示表单内元素数量的方法
Apr 02 #Javascript
原创jQuery弹出层插件分享
Apr 02 #Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 #Javascript
Javascript获取表单名称(name)的方法
Apr 02 #Javascript
You might like
PHP 代码规范小结
2012/03/08 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
mpvue 单文件页面配置详解
2018/12/02 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
传播学毕业生求职信
2013/10/11 职场文书
护士专业推荐信
2013/11/02 职场文书
水污染治理专业毕业生推荐信
2013/11/14 职场文书
店长岗位职责
2013/11/21 职场文书
初二政治教学反思
2014/01/12 职场文书
洗发露广告词
2014/03/14 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
期末个人总结范文
2015/02/13 职场文书
家长高考寄语
2015/02/27 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书