我想知道怎么才能返回resultP的值,然后这个值是有resultP.x和resultP.y的
现在运行是返回空值
namespace ConsoleApp2
{
class Point
{
public double x;
public double y;
}
}
namespace ConsoleApp2
{
class QFJH:AbstractCalculation
{
public override Point Crosscal(Point pa, Point pb, double a, double b)
{
Point resultP= new Point();
resultP.x = (pa.x * (1 / Math.Tan(b)) + pb.x * Math.Tan(a) - pa.y + pb.y) / ((1 / Math.Tan(a) + (1 / Math.Tan(b))));
resultP.y = (pa.y * (1 / Math.Tan(b)) + pb.y * Math.Tan(a) + pa.x - pb.x) / ((1 / Math.Tan(a) + (1 / Math.Tan(b))));
return resultP;
}
}
}
调用代码
Point paa= new Point();
paa.x = 1.0;
paa.y = 1.0;
Point pbb=new Point();
pbb.x = 5.5;
pbb.y = 6.6;
double aa = 45;
double bb = 63;
Point resultPP = new Point();
//角度前方交会计算
AbstractCalculation ac = new QFJH();
resultPP=ac.Crosscal(paa,pbb,aa,bb);
没问题啊,完整代码是什么
using System;
namespace ConsoleApp2
{
class Point
{
public double x;
public double y;
}
class AbstractCalculation
{
public virtual Point Crosscal(Point pa, Point pb, double a, double b)
{
throw new Exception("TODO");
}
}
class QFJH : AbstractCalculation
{
public override Point Crosscal(Point pa, Point pb, double a, double b)
{
Point resultP = new Point();
resultP.x = (pa.x * (1 / Math.Tan(b)) + pb.x * Math.Tan(a) - pa.y + pb.y) / ((1 / Math.Tan(a) + (1 / Math.Tan(b))));
resultP.y = (pa.y * (1 / Math.Tan(b)) + pb.y * Math.Tan(a) + pa.x - pb.x) / ((1 / Math.Tan(a) + (1 / Math.Tan(b))));
return resultP;
}
}
class Program
{
static void Main(string[] args)
{
Point paa = new Point();
paa.x = 1.0;
paa.y = 1.0;
Point pbb = new Point();
pbb.x = 5.5;
pbb.y = 6.6;
double aa = 45;
double bb = 63;
Point resultPP = new Point();
//角度前方交会计算
AbstractCalculation ac = new QFJH();
resultPP = ac.Crosscal(paa, pbb, aa, bb);
Console.WriteLine($"x:{resultPP.x} x:{resultPP.y}");
Console.ReadKey();
}
}
}
你调用代码怎么写的?你怎么查看是空值的呢?
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!