在 Javascript 中生成黄斑网格
Generate Macular Grid in Javascript
如何在Javascript中生成黄斑网格?在黄斑网格中包含一个圆圈,应该采用"V"形格式。
创建"V"形虚线圆圈? 让我们知道如何解决这个问题?
要识别黄斑网格形状,请参阅下面的链接,我添加了屏幕截图。
https://www.dropbox.com/s/0uzfyuzednuldi4/Screen%20Shot%202015-01-27%20at%208.04.47%20PM.png?dl=0
我从未听说过这种图形类型,也找不到信息。如果这是数学推导的,那么我有兴趣了解它是如何工作的。
我遵守的规则:
- 环以线性方式减少其点数。 20, 16, 12, 8.
- 每个交替环偏移迭代角度的 1/2。例如,如果它们在交替行中每 20 度,则偏移 10 度。
- 该图似乎没有均匀地间隔环,但我认为这就是意图。
所以这是我的尝试:http://jsfiddle.net/lannymcnie/sbmaLed1/
- 主功能允许半径(外圈)
- 您可以指定外环和内环中的圆数
- 然后您可以指定退化(抱歉命名不佳,我的初始函数反向工作)。这应该是增加每个环的点数。你需要 4 才能获得效果。你可以改变它以获得一些有趣的效果(http://jsfiddle.net/lannymcnie/sbmaLed1/3/)
这是主要功能:
function drawMac(radius, start, end, degenerate) {
var g = new createjs.Graphics().f("#f00").dc(0,0,5);
for (var i=start, l=end; i<=l; i+=degenerate) {
var segments = i; // Easier to read than "i"
var d = segments/end * radius;
var counter = segments%(degenerate*2) == 0;
var offset = Math.PI*2 * 1/segments;
for (var j=0; j<segments; j++) {
var angle = Math.PI*2 * (j/segments);
var s = new createjs.Shape(g);
s.x = Math.sin(angle) * d;
s.y = Math.cos(angle) * d;
container.addChild(s);
}
}
container.rotation = 45; // Cuz it looks cooler
}
希望这有帮助。弄清楚这一点很有趣。
[编辑]
我做了一些小的调整,让它更接近:
- 向外趋势(见Math.pow补充)
- 增加了向中间的轻微旋转趋势(参见角度中的 +0.002)
这是最后一个函数:
function drawMac(radius, start, end, degenerate) {
var g = new createjs.Graphics().f("#f00").dc(0,0,5);
for (var i=start, l=end; i<=l; i+=degenerate) {
var segments = i; // Easier to read than "i"
var d = Math.pow(segments/end, 0.75) * radius;
var counter = segments%(degenerate*2) == 0;
var offset = Math.PI*2 * 1/segments;
for (var j=0; j<segments; j++) {
var angle = Math.PI*2 * (j/segments+i*0.002);
var s = new createjs.Shape(g);
s.x = Math.sin(angle) * d;
s.y = Math.cos(angle) * d;
container.addChild(s);
}
}
container.rotation = 45; // Cuz it looks cooler
}
这使得它匹配大约 98%。我将结果带入 Photoshop,并且生成的结果略有旋转和缩放,这是我的结果叠加在原始结果上(我的是深红色)。http://screens.gskinner.com/Screen%20Shot%202015-01-29%20at%209.55.06%20AM.png
这是带有最终结果的更新小提琴。http://jsfiddle.net/lannymcnie/sbmaLed1/6/
MacularGrid B 的输出:
jsfiddle.net/jyoshna/tcgefwen/2
相关文章:
- 剑道网格jQuery动画()问题
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 我可以更改剑道UI网格吗's的外键值
- jqGrid树网格问题
- 在Three.js中导出网格会提高性能吗
- 如何在剑道网格初始化后设置pageSizes
- 在threejs中使用纹理网格和线框网格
- 如何在可分组的剑道网格中设置空数据文本
- 如何在Angular UI网格中选择下一行
- ExtJS网格单元格编辑器,防止焦点松动问题
- 多维数据集网格未在指定的分区中绘制
- 光线投射从内部投射时不会碰到网格
- 使用javascript在MVC中查找网格长度时出错
- 如何刷新AngularJs剑道网格
- 使用导航属性创建Kendo UI网格模型的问题
- ui网格将单元格显示为选择标记
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 使用按钮的Angular UI网格过滤器
- 如何在master中调用细节网格作为单击事件
- 在 Javascript 中生成黄斑网格