svg中path的大小写c路径怎么转换?

新手上路,请多包涵

把svg中的path标签里小写c转成大写C有什么规律?
还是和其他属性一样加上初始点就好了吗?

            let new_path = '',i=0,j=0,n=0;
            $.each(path_str_other,function(index){
                if(path_str_other[index] === 'M' || path_str_other[index] === 'L'){
                    path_arr_x[i] = path_arr[n];
                    path_arr_y[j] = path_arr[n];
                    i++;
                    j++;
                    n+=2;
                }else if(path_str_other[index] === 'H'){
                    path_arr_x[i] = path_arr[n];
                    path_arr_y[j] = path_arr_y[j-1];
                    i++;
                    j++;
                    n++;
                }else if(path_str_other[index] === 'V'){
                    path_arr_x[i] = path_arr_x[i-1];
                    path_arr_y[j] = path_arr[n];
                    i++;
                    j++;
                    n++;
                }else if(path_str_other[index] === 'C'){
                    path_arr_x[i] = path_arr[n];
                    path_arr_y[j] = path_arr[n];
                    path_arr_x[i+1] = path_arr[n+1];
                    path_arr_y[j+1] = path_arr[n+1];
                    path_arr_x[i+2] = path_arr[n+2];
                    path_arr_y[j+2] = path_arr[n+2];
                    i+=3;
                    j+=3;
                    n+=3;
                }else if(path_str_other[index] === 'l'){
                    path_arr_x[i] = path_arr_x[i-1] + path_arr[n];
                    path_arr_y[j] = path_arr_y[j-1] + path_arr[n+2];
                    i++;
                    j++;
                    n+=2;
                }else if(path_str_other[index] === 'h'){
                    path_arr_x[i] =  path_arr_x[i-1] + path_arr[n];
                    path_arr_y[j] = path_arr_y[j-1];
                    i++;
                    j++;
                    n++;
                }else if(path_str_other[index] === 'v'){
                    path_arr_x[i] = path_arr_x[i-1];
                    path_arr_y[j] =  path_arr_y[j-1] + path_arr[n];
                    i++;
                    j++;
                    n++;
                }

以上是我写的各种path组合转绝对路径的M+L+Z组合的方法。其中path_str_other为提取出来的符号,通过遍历他们改变其中的相对/绝对值,path_arr_x为存放新的path各点的x坐标的数组,path_arr_y同理,不知道对不对,求这方面的大神指教。

阅读 2.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题