如何有效地将整数转换为字符串极坐标?
How to efficiently convert an integer into string polar coordinate?
给定整数 0-24,我必须将它们转换为以弧度为单位的极坐标 theta 作为字符串。例如:0 = '0'、1 = 'pi/12'、2 = 'pi/6' 等。pi
应该是实际的圆周率符号。我认为我的解决方案效率低下。这是我的工作:
var fracStrings = ['0/1', '1/12', '1/6', '1/4', '1/3', '5/12', '1/2', '7/12', '2/3', '3/4', '5/6', '11/12', '1/1', '13/12', '7/6', '5/4', '4/3', '17/12', '3/2', '19/12', '5/3', '7/4', '11/6', '23/12', '2/1'];
function nToString(n){
//converts angle to string representation
var num = (fracStrings[n].split('/')[0] == 1) ? '' : fracStrings[n].split('/')[0];
num = (fracStrings[n].split('/')[0] == 0) ? '0' : num + '\u03C0';
var denom = (fracStrings[n].split('/')[1] == 1) ? '' : '/' + fracStrings[n].split('/')[1];
return '' + num + denom;
}
我发现声明分数字符串效率低下。我的问题是简化分数。我不能有 12pi/12,我只需要 pi。有没有一种有效的方法来做到这一点?看着就心疼。
仅供参考:\u03C0
是 pi 符号。
将圆周率符号直接放在数组中的字符串中。
const fracStrings = ['0', 'π/12', 'π/6', ...];
或
const fracStrings = ['0', '\u03C0/12', '\u03C0/6', ...];
那么函数就简单了:
function nToString(n) {
return fracStrings[n];
}
给定整数 0-24,我必须将它们转换为以弧度为单位的极坐标 theta 作为字符串。例如:0 = '0'、1 = 'pi/12'、2 = 'pi/6' 等。pi
应该是实际的圆周率符号。我认为我的解决方案效率低下。这是我的工作:
var fracStrings = ['0/1', '1/12', '1/6', '1/4', '1/3', '5/12', '1/2', '7/12', '2/3', '3/4', '5/6', '11/12', '1/1', '13/12', '7/6', '5/4', '4/3', '17/12', '3/2', '19/12', '5/3', '7/4', '11/6', '23/12', '2/1'];
function nToString(n){
//converts angle to string representation
var num = (fracStrings[n].split('/')[0] == 1) ? '' : fracStrings[n].split('/')[0];
num = (fracStrings[n].split('/')[0] == 0) ? '0' : num + '\u03C0';
var denom = (fracStrings[n].split('/')[1] == 1) ? '' : '/' + fracStrings[n].split('/')[1];
return '' + num + denom;
}
我发现声明分数字符串效率低下。我的问题是简化分数。我不能有 12pi/12,我只需要 pi。有没有一种有效的方法来做到这一点?看着就心疼。
仅供参考:\u03C0
是 pi 符号。
将圆周率符号直接放在数组中的字符串中。
const fracStrings = ['0', 'π/12', 'π/6', ...];
或
const fracStrings = ['0', '\u03C0/12', '\u03C0/6', ...];
那么函数就简单了:
function nToString(n) {
return fracStrings[n];
}