上图是生成点的位置代码
上图是线出现的位置
上图为竖着的效果
上图是横线的效果
上图是斜线的效果
一下代码为效果代码
/// <summary>
/// 查看点数
/// </summary>
public void ChaKanShuRuDian()
{
DianDianShu = 0;
#region 线
//if (heng == 1)
//{
// SYXL_ChaKanDianShu[0].SetActive(true);
//}
//if (heng == 2)
//{
// SYXL_ChaKanDianShu[1].SetActive(true);
//}
//if (heng == 3)
//{
// SYXL_ChaKanDianShu[2].SetActive(true);
//}
//if (heng == 4)
//{
// SYXL_ChaKanDianShu[3].SetActive(true);
//}
//if (heng == 5)
//{
// SYXL_ChaKanDianShu[4].SetActive(true);
//}
#endregion
//起始点
ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].SetActive(true);
//终点
ChaKanQiShiDianZhongDian[qishiAndzhingdian_Two - 1].SetActive(true);
PanDuanCeXianWeiZhi_Two();
// 线
// SYXL_ChaKanDianShu[heng - 1].SetActive(true);
//点点父物体打开
// DianDianShuZu_Five[heng - 1].SetActive(true);
//终点跟起始点的距离
float pianyiliang =
ChaKanQiShiDianZhongDian[qishiAndzhingdian_Two-1].transform.localPosition.x
- ChaKanQiShiDianZhongDian[qishiAndzhingdian-1].transform.localPosition.x;
//print(ChaKanQiShiDianZhongDian[qishiAndzhingdian_Two].transform.localPosition.x + "终点");
//print(ChaKanQiShiDianZhongDian[qishiAndzhingdian].transform.localPosition.x + "起点");
float pianyiliang = zhongdian.x - qidian.x;
print(pianyiliang + "数值");
float A = pianyiliang / (int.Parse(CeDianShuZhi.text) + (-1));
//print(A + "a");
float qishiX = ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.x;
float ShuZhouWeiZhi = zhongdian.y - qidian.y;
float B = ShuZhouWeiZhi / (int.Parse(CeDianShuZhi.text) + (-1));
double C = ZXie / (int.Parse(CeDianShuZhi.text) );
print(C + "斜线");
///横线
if (zhongdian.y == qidian.y)
{
for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
{
One_AllDianDian[i].transform.Rotate(0, 0, 0, 0);
One_AllDianDian[i].SetActive(true);
One_AllDianDian[i].transform.localPosition = new Vector3(
qidian.x + (A * i), qidian.y + 30, qidian.z);
}
}
//竖线
if (zhongdian.x == qidian.x)
{
for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
{
//B
One_AllDianDian[i].transform.Rotate(0, 0, 0, 0);
One_AllDianDian[i].SetActive(true);
One_AllDianDian[i].transform.localPosition = new Vector3(
qidian.x - 30, qidian.y+(B * i), qidian.z);
//One_AllDianDian[i].transform.localRotation= new Quaternion(0,0,180,0);
One_AllDianDian[i].transform.Rotate(0, 0, -270,0);
}
}
if (zhongdian.x != qidian.x && zhongdian.y != qidian.y)
{
for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
{
// GetPos(qidian/2, zhongdian/2, C*i);
One_AllDianDian[i].SetActive(true);
double jiaodu = Math.Sin(XHeng/ ZXie);
One_AllDianDian[i].transform.Rotate(0, 0, (float)jiaodu, 0);
One_AllDianDian[i].transform.localPosition =
GetPos(xiebianqidian, xiebianzhongdian, (float)C*i);
}
}
#region zhiqian
//if (heng == 1)
//{
// for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
// {
// One_AllDianDian[i].transform.localPosition = new Vector3(
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.x + (A * i),
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.y,
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.z);
// One_AllDianDian[i].SetActive(true);
// }
//}
//if (heng == 2)
//{
// for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
// {
// Two_AllDianDian[i].transform.localPosition = new Vector3(
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.x + (A * i),
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.y,
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.z);
// Two_AllDianDian[i].SetActive(true);
// }
//}
//if (heng == 3)
//{
// for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
// {
// Three_AllDianDian[i].transform.localPosition = new Vector3(
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.x + (A * i),
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.y,
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.z);
// Three_AllDianDian[i].SetActive(true);
// }
//}
//if (heng == 4)
//{
// for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
// {
// Four_AllDianDian[i].transform.localPosition = new Vector3(
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.x + (A * i),
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.y,
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.z);
// Four_AllDianDian[i].SetActive(true);
// }
//}
//if (heng == 5)
//{
// for (int i = 0; i < int.Parse(CeDianShuZhi.text); i++)
// {
// Five_AllDianDian[i].transform.localPosition = new Vector3(
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.x + (A * i),
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.y,
// ChaKanQiShiDianZhongDian[qishiAndzhingdian - 1].transform.localPosition.z);
// Five_AllDianDian[i].SetActive(true);
// }
//}
#endregion
}
/// <summary>
/// 斜边
/// </summary>
/// <param name="post1">开始位置</param>
/// <param name="post2">结束位置</param>
/// <param name="rand">距离</param>
/// <returns></returns>
public Vector3 GetPos(Vector3 post1, Vector3 post2, float rand)
{
Vector3 pos = Vector3.zero;
float dis = Vector3.Distance(post1, post2);//计算距离
Vector3 vector = (post2 - post1).normalized; //向量单位化
pos = vector * rand; //得到新坐标
pos += post1; //使新的坐标点在 post1与 post2之间
return pos;
}
/// <summary>
/// 判断测线位置
/// </summary>
public void PanDuanCeXianWeiZhi_Two()
{
float hengzhouqianx = (zhongdian.x / 2) + (qidian.x / 2);
float shuzhouxiany = (zhongdian.y / 2) + (qidian.y / 2);
print(hengzhouqianx + "横轴X");
print(shuzhouxiany + "数轴Y");
///横线
if (zhongdian.y == qidian.y)
{
print(hengzhouqianx + "横轴X");
HengShu_Xie_Two[0].SetActive(true);
HengShu_Xie_Two[1].SetActive(false);
HengShu_Xie_Two[2].SetActive(false);
HengShu_Xie_Two[0].transform.localPosition = new Vector3(hengzhouqianx, zhongdian.y, 0);
HengShu_Xie_Two[0].GetComponent<RectTransform>().sizeDelta = new Vector2(Math.Abs(XHeng), 5);// XHeng
}
//竖线
if (zhongdian.x == qidian.x)
{
HengShu_Xie_Two[1].SetActive(true);
HengShu_Xie_Two[0].SetActive(false);
HengShu_Xie_Two[2].SetActive(false);
HengShu_Xie_Two[1].GetComponent<RectTransform>().sizeDelta = new Vector2(Math.Abs(YShu), 5);// XHeng
HengShu_Xie_Two[1].transform.localPosition = new Vector3(zhongdian.x, shuzhouxiany, 90);
}
//斜线
if (zhongdian.x != qidian.x && zhongdian.y != qidian.y)
{
print("xb skjibdjes");
HengShu_Xie_Two[0].SetActive(false);
HengShu_Xie_Two[1].SetActive(false);
HengShu_Xie_Two[2].SetActive(true);
HengShu_Xie_Two[2].GetComponent<RectTransform>().sizeDelta = new Vector2(Math.Abs(XHeng), Math.Abs(YShu));// XHen
float Xiex = (qidian.x / 2) + (zhongdian.x / 2);
float xiey = (qidian.y / 2) + (zhongdian.y / 2);
//HengShu_Xie[1].transform.localPosition = new Vector3(Math.Abs( Xiex), Math.Abs( xiey), qidian.z);
if (qidian.x < zhongdian.x)
{
HengShu_Xie_Two[2].transform.localPosition = new Vector3(Xiex, xiey, qidian.z);
HengShu_Xie_Two[2].transform.Rotate(0, 0, 0, 0);
xiebianqidian = new Vector3(qidian.x+40, qidian.y, qidian.z);
xiebianzhongdian = new Vector3(zhongdian.x+40, zhongdian.y, zhongdian.z);
}
else
{
HengShu_Xie_Two[2].transform.localPosition = new Vector3(Xiex, xiey, qidian.z);
HengShu_Xie_Two[2].transform.Rotate(0, 180, 0, 0);
xiebianqidian = new Vector3(qidian.x-40, qidian.y, qidian.z);
xiebianzhongdian = new Vector3(zhongdian.x-40, zhongdian.y, zhongdian.z);
}
}
}