- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个类似 seats.io 的软件,我正在尝试使圆圈的线弯曲。我首先使用 d3.js 创建一个带有 svg 圆圈的正方形。
y坐标
我首先找到中间的圆并将其 cy 设置为 0,然后按顺序设置后续圆(每行递增 12。然后我意识到,如果它是偶数,则无法找到中间点。
我已经决定使用 bhaskara 公式来查找曲线坐标,但我仍然不知道如何将它定位在循环中:
$("#curve").on("change",function(){
var a = $(this).val();
var q = quant_col2;
console.log(q);
console.log(quant_line2);
var half = Math.round(quant_col2/2) - 1;
console.log("media: " + half);
var value = 0;
var circles = svg.selectAll("circle").attr("cy", function(d, i){
var cy = $(this).attr("cy");
var resultado = baskara(quant_col2,quant_line2,0);
var xv = -Math.abs(quant_line2)/(2 * quant_col2);
var xy = -Math.abs(delta(quant_col2,quant_line2,0))/4 * quant_col2;
if(i < q){
if(i == half) {
return value;
}
}
if(i == q - 1){
half = half + quant_col2;
q = q + quant_col2;
value = value + 12;
return cy;
}
return cy;
});
console.log($(this).val());
});
如何让它弯曲并且圆圈正确定位?感谢您的帮助。
编辑 1:没有数据参数的代码
var curva = svg.selectAll("circle")
.attr("cx", function(d,i) {
var cx = $(this).attr("cx");
return p_parab.x(cx);
})
.attr("cy", function(d,i) {
var cy = $(this).attr("cy");
return p_parab.y(cy) + 15* cy;
});
最佳答案
我绝对不确定我是否理解你的问题,但如果你试图沿着曲线放置圆圈,我建议......
参数方程将为您提供单行。对于每个额外的行,您需要考虑该行中所有 cy 的额外偏移量。
这是一个非常粗略的示例,供您构建......
const p_circle = {
x(t){ return 100*Math.cos((t+10)/10)+150 },
y(t){ return 100*Math.sin((t+10)/10)-80 }
}
const p_parab = {
x(t){ return -(10*t-5)+100 },
y(t){ return -(t-5)*(t-5)+20 }
}
let t = Array.prototype.concat(
Array.from(Array(10).keys()).map(d=>[d,1]), //row 1
Array.from(Array(10).keys()).map(d=>[d,2]), //row 2
Array.from(Array(10).keys()).map(d=>[d,3]) //row 3
)
const p_parab_2 = {
x(t){ return (10*t-5)+100 }, // removing "-" so that first seat is on left, not right
y(t){ return -(t-5)*(t-5)+20 }
}
// adding 11th seat to center around seat 5 (seat in the center)
let t2 = Array.prototype.concat(
Array.from(Array(11).keys()).map(d=>[d,1]), //row 1
Array.from(Array(11).keys()).map(d=>[d,2]), //row 2
Array.from(Array(11).keys()).map(d=>[d,3]) //row 3
)
console.log(t)
d3.select("svg").selectAll(".circ")
.data(t)
.enter()
.append("circle")
.attr("class", "circ")
.attr("r",5)
.attr("fill","red")
.attr("cx", (d) => p_circle.x(d[0]))
.attr("cy", (d) => p_circle.y(d[0]) + 15*d[1])
d3.select("svg").selectAll(".parab2")
.data(t2)
.enter()
.append("circle")
.attr("class", "parab2")
.attr("r",7)
.attr("fill","blue")
.attr("cx", (d) => p_parab.x(d[0]))
.attr("cy", (d) => p_parab.y(d[0]) + 15*d[1])
d3.select("svg").selectAll(".parab")
.data(t)
.enter()
.append("circle")
.attr("class", "parab")
.attr("r",5)
.attr("fill","green")
.attr("cx", (d) => p_parab.x(d[0]))
.attr("cy", (d) => p_parab.y(d[0]) + 15*d[1])
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg height="250" width="250"></svg>
关于javascript - 如何将 svg 圆定位在一条直线上并弯曲它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600695/
我正在使用我的简单 PHP 验证码算法 ( http://www.source.ofitall.com/devel/captcha.php ),我一直在努力尝试调整它以使其更具吸引力和更易于阅读,谷歌
我正在 android 中实现一个 ListView ,它看起来就像这样并滚动 我一直在通过在我的适配器的 getView 中设置膨胀行的布局参数来做到这一点,但由此引发的问题是 ListView 变
我正在尝试使用 flex 和 bison 创建一个计算器,它可以进行一组操作(结果分配给变量)。计算器使用存储器来存储这些变量。当我通过终端(标准输入键盘)进行此计算时,一切正常。但是,当我尝试使用文
我的Flex应用程序中有数据网格,我使用Arraycollection绑定(bind)数据网格(使用remoteobject方法调用从java类获取数据)。现在我正在数据网格中执行添加/编辑/删除,我
是否可以制作弯曲或拱形形状的矩形。这是我的 jsfiddle https://jsfiddle.net/dibyendu/y8pthz2x/ 。我想使用 d3 使雷达图轴上的这些矩形成为弧形/曲线 最
我有一张代表某个区域海拔的图像。但是制造它的无人机不一定走直线(尽管图像总是矩形的)。我还有每 20 厘米生成的 gps 坐标。 如何“弯曲”这个矩形图像(曲线/马赛克),使其代表无人机实际经过的弯曲
我经历了How to curve the top of a UIView Controller in Swift 并发表看法。它附在下面。我想从我的 View 中删除该背景色。我在 Storyboar
任何人都可以帮助弯曲 View 以达到以下效果。我正在使用自定义 View 组,我想操纵 Canvas 来实现以下效果,谁能帮帮我。 谢谢 最佳答案 你需要知道: Camera Matrix 这是一个
我尝试绘制一些 3D 正方形(在 iPhone 上使用 OpenGL)并让它们旋转,现在它们看起来像一个球体。 http://i618.photobucket.com/albums/tt265/Loy
我想创建一个 div,它是一个按钮,它包含一个国旗的图片和一个国家的 abv,我已经将一些代码放入我想要的内容中,但这不是 Bootstrap 的方式,我'我正在努力解决这个问题,以及如何使用 boo
现在我正在用一系列 View 填充 UIScrollView。需要扭曲 View 以使 UIScrollView 看起来像旋转木马。换句话说,当用户滚动时,它需要像一个圆圈。我以前从未做过类似的事情,
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!