计算等边三角形的节点域

counting nodal domains of equilateral triangle

我正在开发一个代码来计算基于矩阵的任何图形的节点域所以最近我应该检查我的程序是否有等边三角形但是由于 sqrt(3) 因素它无法正确剪裁它这就是为什么计数出错了任何帮助都是可观的

private void sin()
    {
        // TODO Auto-generated method stub
        for (int i = 0; i < row; i++)
        {
            for (int j = 0; j <col; j++)
            {

                   a=Math.cos(((2*m)-n)*((2*(i+1))/3)*pi);
                   b=Math.sin(((2*(n*(j+1)))/1.732)*pi);
                   c=Math.cos(((((2*n)-m)*(2*(i+1)))/3)*pi);
                   d=Math.sin(((2*m)*(j+1)/1.732)*pi);
                   e=Math.cos((((m+n)*(2*(i+1)))/3)*pi);
                   f=Math.sin((((m-n)*(2*(j+1)))/1.732)*pi);
                   mul=(a*b)-(c*d)+(e*f);

                if(mul<0)
                {
                    matrix[i][j]=0;
                }
                else
                {
                    matrix[i][j]=4;
                }
                //System.out.print(matrix[i][j]);
            }
            //System.out.println();
        }


    } 

下面是帮助函数中提取等边三角形的代码,仅此而已

    private void eqltri()
    {
        // TODO Auto-generated method stub
        for (int i = 0; i <row; i++)
        {
            for (int j = 0; j <col; j++)
            {
                if( i>(j/t)&& (row-i)>(j/t))

                {
                    matrix[i][j]=matrix[i][j];
                }
                else
                {
                matrix[i][j]=4; 
                }
                //System.out.print(matrix[i][j]);
            }
            //System.out.println();
        }

    }
private void eqltri()
        {
            // TODO Auto-generated method stub
            for (int i = 0; i < row; i++)
            {
                for (int j = 0; j <col; j++) 
                {
                    xx=(i+1)*pi;
                    yy=(j+1)*pi;
                    if((xx*t)>yy&& yy<(t*(p-xx)))

                    {
                        matrix[i][j]=matrix[i][j];
                    }
                    else
                    {
                    matrix[i][j]=4; 
                    }
                    //System.out.print(matrix[i][j]);
                }
                //System.out.println();
            }

        }