在圆圈内包装文字 [英] Wrap text within circle
本文介绍了在圆圈内包装文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用d3来绘制一个UML图,并希望在用d3绘制的形状内包装文本。我已经到了下面的代码,无法找到一个解决方案,使文本'fit'在我的形状(见下图)。
I'm using d3 to draw a UML diagram and would like to wrap text within the shapes drawn with d3. I've gotten as far as the code below and can't find a solution to make the text 'fit' within my shape (see image below).
var svg = d3.select('#svg')
.append('svg')
.attr('width', 500)
.attr('height', 200);
var global = svg.append('g');
global.append('circle')
.attr('cx', 150)
.attr('cy', 100)
.attr('r', 50);
global.append('text')
.attr('x', 150)
.attr('y', 100)
.attr('height', 'auto')
.attr('text-anchor', 'middle')
.text('Text meant to fit within circle')
.attr('fill', 'red');
foreignObject
var side = 2 * radius * Math.cos(Math.PI / 4),
dx = radius - side / 2;
var g = svg.append('g')
.attr('transform', 'translate(' + [dx, dx] + ')');
g.append("foreignObject")
.attr("width", side)
.attr("height", side)
.append("xhtml:body")
.html("Lorem ipsum dolor sit amet, ...");
该组应该移动一小部分以使文本居中。我知道这不是什么问题,但它可以是有益的。我写了一个小小提琴。结果将如下所示:
The group should be displaced a small amount to have the text centered. I know that this is not exactly what is asked, but it can be helpful. I wrote a small fiddle. The result will look like this:
这篇关于在圆圈内包装文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文