Javascript 如何获取曲面中圆弧的质心?
我在React Native中有一些arc,我想得到它们的(中间点)用于标记。它们是使用Javascript 如何获取曲面中圆弧的质心?,javascript,d3.js,svg,react-native,Javascript,D3.js,Svg,React Native,我在React Native中有一些arc,我想得到它们的(中间点)用于标记。它们是使用d3.shape.arc()生成的。它们是使用arc生成的数据用SVG绘制的 我试着跟随(我也发现了,但也不能让任何东西起作用)。它在React.js中,所以我必须像过去一样将它转换为React Native,但我被卡住了 我试过这样的方法: this.middle=this.arc.centroid() this.middle=this.arc.centroid(this.props.arcData) t
d3.shape.arc()
生成的。它们是使用arc生成的数据用SVG绘制的
我试着跟随(我也发现了,但也不能让任何东西起作用)。它在React.js中,所以我必须像过去一样将它转换为React Native,但我被卡住了
我试过这样的方法:
this.middle=this.arc.centroid()代码>
this.middle=this.arc.centroid(this.props.arcData)代码>
this.middle=d3.shape.arc().centroid(this.arc)代码>
this.middle=d3.shape.arc().centroid(this.props.arcData)代码>
export default class Arc extends Component {
constructor(props) {
super(props);
this.arc = d3.shape
.arc()
.outerRadius(this.props.outerRadius)
.innerRadius(this.props.innerRadius)
.cornerRadius(this.props.cornerRadius)
(this.props.arcData);
//My attempts here
}
.
.
.
render() {
return (
<G>
<Path d={this.arc} fill={this.props.color} />
<Polyline ... /> //This is what I'm trying to draw eventually
</G>
);
}
}
导出默认类圆弧扩展组件{
建造师(道具){
超级(道具);
this.arc=d3.shape
.arc()
.outerRadius(此.props.outerRadius)
.innerRadius(此.props.innerRadius)
.cornerRadius(此.props.cornerRadius)
(这是props.arcData);
//我在这里的尝试
}
.
.
.
render(){
返回(
//这就是我最终想要画的
);
}
}
它要么告诉我在前两次尝试中它不是函数,要么在第二次尝试中返回一个带有两个NaN值的数组。我以前遇到过这种情况,因为这些变量不是我们可以调用函数的对象,并且React Native没有用于select、append、attr等的DOM元素。过去我能够解决这个问题,但这次我被卡住了
还有其他方法可以在React Native中成功获得圆弧的质心吗?第二天,我最终发现,由于缺少变量,可以替换整个表达式来再次创建圆弧
this.points = [
d3.shape.arc().outerRadius(this.props.outerRadius).innerRadius(this.props.innerRadius).centroid(this.props.arcData),
d3.shape.arc().outerRadius(this.props.radius*0.95).innerRadius(this.props.radius*0.95).centroid(this.props.arcData),
pos
];
第一个元素是原始弧,第二个元素是基于问题中链接的示例的外部弧
然后,我用点绘制多段线:
<Polyline points={this.points} />
希望这能帮助任何想在React Native中使用质心的人。如果你在midAngle或NaN的问题上遇到麻烦,请在评论或其他信息中告诉我