React native React Native:如何绘制具有随机边数的形状(边数将是用户输入值)?

React native React Native:如何绘制具有随机边数的形状(边数将是用户输入值)?,react-native,autolayout,styles,shapes,React Native,Autolayout,Styles,Shapes,如果用户输入数字4,生成的形状将变成一个正方形。如果用户输入9,形状将变成非角形。 这应该是react本机解决方案:) 有什么想法吗?代码应该是不言自明的。您可以在圆上定位点,并在svg多边形的帮助下用线将它们连接起来 import React,{useState,useffect}来自“React”; 从“react native”导入{视图、样式表、维度、文本、文本输入}; 从“react native Svg”导入Svg,{Polygon}; 从“expo常量”导入常量; 导出默认函数A

如果用户输入数字4,生成的形状将变成一个正方形。如果用户输入9,形状将变成非角形。 这应该是react本机解决方案:)
有什么想法吗?

代码应该是不言自明的。您可以在圆上定位点,并在svg多边形的帮助下用线将它们连接起来

import React,{useState,useffect}来自“React”;
从“react native”导入{视图、样式表、维度、文本、文本输入};
从“react native Svg”导入Svg,{Polygon};
从“expo常量”导入常量;
导出默认函数App(){
const windowWidth=Dimensions.get('window').width;
常数中心=窗宽/2;
常数半径=中心-20;
const[numSides,setNumSides]=useState(3);
常量[polygonPoints,setPolygonPoints]=useState();
useffect(()=>{
设newPolyPoints='';
常数角度=2*Math.PI/numSides;
for(设边=0;边{
常数int=parseInt(t,10);
返回isNaN(int)==false&&int>=3;
}
返回(
{'边数:'}
{
if(输入有效(t)){
常数int=parseInt(t,10);
setNumSides(int);
}
}}
/>
);
}
const styles=StyleSheet.create({
容器:{
弹性:1,
为内容辩护:“中心”,
paddingTop:Constants.statusBarHeight,
背景颜色:“#ecf0f1”,
填充:8,
},
输入容器:{
flexDirection:'行',
对齐项目:“居中”,
澳门时间:20,,
marginHorizontal:12,
},
标签:{
尺码:18,
},
文本输入:{
背景颜色:“白色”,
弹性:1,
尺码:18,
},
svg:{
方面:1,
背景颜色:“西红柿”,
},
});

对边的长度有什么要求吗?没有,对长度没有要求,可以。还有,高度和宽度都不重要你试过什么?它工作了吗?如果没有,你做了什么来调试它?如果你陷入困境,那么你做了什么研究?请参见、和,然后是您的问题,以包括这些详细信息。