这是小提琴:http://jsfiddle.net/DevChefOwen/CZ6Dp/
var text = g.append("text")
.style("font-size",30)
.style("fill","#000")
.attr("dy",0)
.append("textPath")
.attr("xlink:href","#yyy")
.style("text-anchor","left") // using "end", the entire text disappears
.text("some text");
Run Code Online (Sandbox Code Playgroud)
我尝试过很多不同的东西都无济于事.左对齐是简单的部分.但是,如果你做了一个中间,你只看到"文本"而不是"某些文本",暗示"某些"只是被隐藏,因为它对于给定的弧线"超出范围".
但是,如果我补充说:
.attr("startOffset","39%")
Run Code Online (Sandbox Code Playgroud)
(如下所示:http://jsfiddle.net/DevChefOwen/2H99c/)
它看起来是正确的对齐,但在编程之外尝试获取文本元素的宽度/高度并寻找宽度/高度的急剧变化(这似乎是错误的并且可能容易出错),我似乎无法找到方法右对齐文本.
我也尝试过使用SVG路径(本质上是曲线弧线),当"text-anchor"设置为"left"时,文本也会发生相同的消失行为.
谢谢你的时间!
本质上,我想让我的代码更加模块化和可共享:您可以看到以下文件最初是如何组成一个更大的文件的。它不起作用,我怀疑这是因为我试图用 Python 做一些我不应该做的事情:
app_config.py
:
app_name = "quick scraper"
mysql_db = ... # intended "global" variable that connects to database
Run Code Online (Sandbox Code Playgroud)
main.py
:
from app_config import * # Getting shared variables
import app_library # See code app_library.py below
...
logger = logging.getLogger(app_name) # logger object to be shared later
...
app_library.dlAndSaveWebpage(url) # Module has key helper functions
...
Run Code Online (Sandbox Code Playgroud)
app_library.py
:
import app_models_orm as app_models
def dlAndSaveWebpage(url)
# download and process url
...
app_models.Webpage.create(url=url, body=body)
Run Code Online (Sandbox Code Playgroud)
app_models_orm.py
:
class MySQLModel(Model):
class Meta:
database …
Run Code Online (Sandbox Code Playgroud)