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 API学Jquery 之三 筛选
Apr 09 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
Jun 15 Javascript
浅谈javascript对象模型和function对象
Dec 26 Javascript
移除AngularJS下URL中的#字符的方法
Jun 19 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
AngularJS监听路由变化的方法
Mar 07 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
jQuery实现frame之间互通的方法
Jun 26 jQuery
node.js实现的装饰者模式示例
Sep 06 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
关于AOP在JS中的实现与应用详解
May 06 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 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
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
PHP多文件上传实例
2015/07/09 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
详解Python3中yield生成器的用法
2015/08/20 Python
Python requests库用法实例详解
2018/08/14 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
为什么是 Python -m
2020/06/19 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
周年庆典邀请函范文
2014/01/24 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
python 如何做一个识别率百分百的OCR
2021/05/29 Python
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python
Go语言怎么使用变长参数函数
2022/07/15 Golang