当前位置: 首页 > news >正文

济南建网站市场搜索引擎的优化方法

济南建网站市场,搜索引擎的优化方法,宿迁做网站的,陕西建设分行网站一:前言 一条贝塞尔曲线是由一组定义的控制点P0到 Pn,n1为线性,n2为二次......第一个和最后一个控制点称为起点和终点,中间的控制点一般不会位于曲线上 获取两个点之间的点就是通过线性插值( Mathf.Lerp&#xff09…

一:前言 

一条贝塞尔曲线是由一组定义的控制点P0到 Pn,n=1为线性,n=2为二次......第一个和最后一个控制点称为起点和终点,中间的控制点一般不会位于曲线上 
获取两个点之间的点就是通过线性插值( Mathf.Lerp),0 <= t <= 1


二:贝塞尔曲线公式

——线性公式:给定点P0、P1,线性贝兹曲线只是一条两点之间的直线。这条线由下式给出

1


——二阶贝塞尔曲线:二次方贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t)公式推导:由(P0,P1),(P1,P2)分别求线性公式所得的结果P0‘ 和 P1‘再带入线性公式,整理所得即为二次公式
P0,P1所求:
1.1.1
P1,P2所求:
1.2.2
P0,P1,P2二次方公式:
1.2.3
简化所得
1.2.4


——三阶贝塞尔曲线:P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝兹曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2;这两个点只是在那里提供方向。P0和P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。
其公式为
1.3.1 


三:公式转换为代码

using UnityEngine;/// <summary>
/// 贝塞尔工具类
/// </summary>
public static class BezierUtils
{/// <summary>/// 线性贝塞尔曲线/// </summary>public static Vector3 BezierCurve(Vector3 p0, Vector3 p1, float t){Vector3 B = Vector3.zero;B = (1 - t) * p0 + t * p1;return B;}/// <summary>/// 二阶贝塞尔曲线/// </summary>public static Vector3 BezierCurve(Vector3 p0, Vector3 p1, Vector3 p2, float t){Vector3 B = Vector3.zero;float t1 = (1 - t) * (1 - t);float t2 = 2 * t * (1 - t);float t3 = t * t;B = t1 * p0 + t2 * p1 + t3 * p2;return B;}/// <summary>/// 三阶贝塞尔曲线/// </summary>public static Vector3 BezierCurve(Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, float t){Vector3 B = Vector3.zero;float t1 = (1 - t) * (1 - t) * (1 - t);float t2 = 3 * t * (1 - t) * (1 - t);float t3 = 3 * t * t * (1 - t);float t4 = t * t * t;B = t1 * p0 + t2 * p1 + t3 * p2 + t4 * p3;return B;}
}

 四:绘制出曲线

  

using System.Collections.Generic;
using UnityEngine;public class BezierTest : MonoBehaviour
{public int m_CurveDensity;//曲线密度public bool m_IsSecondOrderBezier;//是否为二阶贝塞尔曲线,否则为三阶贝塞尔曲线private List<Transform> m_ControlPointList = new List<Transform>();//所有的控制点(控制点作为挂载此脚本的游戏物体的子物体)public void OnDrawGizmos(){//添加控制点m_ControlPointList.Clear();foreach (Transform trans in transform){m_ControlPointList.Add(trans);}List<Vector3> pointList = new List<Vector3>();//曲线上的所有点if (m_IsSecondOrderBezier){if (m_ControlPointList.Count < 3){return;}//获取曲线上的所有点for (int i = 0; i < m_ControlPointList.Count - 2; i += 2){Vector3 p0 = m_ControlPointList[i].position;Vector3 p1 = m_ControlPointList[i + 1].position;Vector3 p2 = m_ControlPointList[i + 2].position;for (int j = 0; j <= m_CurveDensity; j++){float t = j * 1f / m_CurveDensity;Vector3 point = BezierUtils.BezierCurve(p0, p1, p2, t);pointList.Add(point);}}}else{if (m_ControlPointList.Count < 4){return;}//获取曲线上的所有点for (int i = 0; i < m_ControlPointList.Count - 3; i += 3){Vector3 p0 = m_ControlPointList[i].position;Vector3 p1 = m_ControlPointList[i + 1].position;Vector3 p2 = m_ControlPointList[i + 2].position;Vector3 p3 = m_ControlPointList[i + 3].position;for (int j = 0; j <= m_CurveDensity; j++){float t = j * 1f / m_CurveDensity;Vector3 point = BezierUtils.BezierCurve(p0, p1, p2, p3, t);pointList.Add(point);}}}//绘制所有点foreach (var point in pointList){Gizmos.DrawSphere(point, 0.1f);}//绘制控制点连线Gizmos.color = Color.red;for (int i = 0; i < m_ControlPointList.Count - 1; i++){Gizmos.DrawLine(m_ControlPointList[i].position, m_ControlPointList[i + 1].position);}}
}

http://www.hrbkazy.com/news/38678.html

相关文章:

  • 技术支持 武汉网站优化详细描述如何进行搜索引擎的优化
  • ftp上传网站全教程杭州10大软件开发公司
  • 找人做网站要多少钱黄冈黄页88网黄冈房产估价
  • 汽车配件销售网站开发论文全球疫情最新数据消息
  • 网站制作测试范围电商代运营公司
  • 一个后台管理多个网站百度地图关键词排名优化
  • 罗湖企业网站建设推广赚钱项目
  • 网站建设中的功能模块描述网络推广网站公司
  • 泰州做直销会员结算管理网站b2b外贸平台
  • 搭建网站 软件下载seo研究协会网
  • 网站分享代码怎么加谷歌seo公司
  • 深圳企业网站建设学it什么培训机构好
  • 响应式网站制作流程怎么用网络推广
  • 移动端网站的优点河南网站顾问
  • 西部数据网站空间新网站 seo
  • 门户类网站注重什么草根seo博客
  • 做logo宣传语的网站站长工具海角
  • 辽宁做网站的公司网站历史权重查询
  • seo网站首页优化排名怎么做seo优化是什么职业
  • 广告平台代理山东搜索引擎优化
  • 网站开发毕业论文jsurl中文转码
  • 网站自己做还是找公司电脑优化大师哪个好
  • 西宁网站建设王道下拉惠教育培训机构前十名
  • 网站搜索出来有图片百度投诉中心在线申诉
  • 优化网站建设公司怎么做品牌推广和宣传
  • 毕业设计可以做网站吗百度推广没有一点效果
  • 思途旅游网站建设系统宣城网站seo
  • 企业网站的建设的功能定位株洲seo优化首选
  • c语言除了做网站还能干什么交换友情链接的条件
  • 制作一个简单网站代发百度首页排名