Javascript 如何获取曲面中圆弧的质心?

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

我在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)
  • 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的问题上遇到麻烦,请在评论或其他信息中告诉我