DeepSeek教unity------Dotween

1、命名法

Tweener(補間器):一種控制某個值并對其進行動畫處理的補間。
Sequence(序列):一種特殊的補間,它不直接控制某個值,而是控制其他補間并將它們作為一個組進行動畫處理。
Tween(補間):一個通用術語,既指代 Tweener 也指代 Sequence。
Nested tween(嵌套補間):包含在 Sequence 中的補間。
前綴
前綴對于充分利用 IntelliSense 非常重要,所以盡量記住這些:
DO :前綴用于所有補間快捷方式(可以從已知對象,如變換或材質直接啟動的操作)。

transform.DOMoveX(100, 1);
transform.DORestart();
DOTween.Play();

Set:所有可以鏈接到補間的設置(除了 From,因為它作為設置應用但并不真正屬于設置)的前綴。

myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();

On :用于所有可以鏈接到補間的回調函數。

myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);

2、DOTween.Init


首次創建補間時,DOTween 會使用默認值自動初始化自身。如果你希望手動初始化它(推薦),請在創建任何補間之前調用一次此方法(之后調用將不會有任何效果)。請注意,你仍然可以通過 DOTween 的全局設置隨時更改所有初始化設置。另外,你可以將 SetCapacity 方法鏈接到 Init 方法上,這允許設置 Tweeners/Sequences 的初始容量(這與稍后調用 DOTween.SetTweensCapacity 是相同的)。
? public static IDOTweenInit Init(bool? recycleAllByDefault = null, bool? useSafeMode = null, LogBehaviour? logBehaviour = null);
初始化 DOTween。調用時不帶任何參數以使用你在 DOTween 的工具面板中設置的首選項(否則這些首選項將被傳遞的任何參數覆蓋)。
recycleAllByDefault:如果為 TRUE,則所有新的補間都將被設置為可回收,這意味著當它們被銷毀時不會真正銷毀,而是會被放入池中并重用,而不是創建新的補間。此選項允許你通過重用補間來避免垃圾回收分配,但你需要小心處理補間引用,因為即使補間已被銷毀,它們也可能依然活躍(因為它們可能已經被重新生成并作為完全不同的補間在使用)。
如果你希望在補間被銷毀時自動將其引用設置為 NULL,可以使用 OnKill 回調,如下所示:
// 使用 OnKill 回調自動將補間引用設置為 NULL

myTween.OnKill(() => myTween = null);

你可以隨時通過更改靜態屬性 DOTween.defaultRecyclable 來修改此設置,或者你可以使用 SetRecyclable 為每個補間單獨設置回收行為。
useSafeMode:如果設置為 TRUE,補間會稍微慢一些,但更安全,允許 DOTween 自動處理諸如在補間運行時目標被銷毀的情況。
警告:在 iOS 上,safeMode 僅在剝離級別設置為 "Strip Assemblies" 或腳本調用優化設置為 "Slow and Safe" 時有效,而在 Windows 10 WSA 上,如果選擇了 Master Configuration 和 .NET,則不會生效。
logBehaviour:根據所選模式,DOTween 將記錄僅錯誤、錯誤和警告,或所有信息加上附加信息。

// 示例 A:使用 DOTween 的工具面板中設置的首選項進行初始化
DOTween.Init();
// 示例 B:使用自定義設置進行初始化,并立即設置容量
DOTween.Init(true, true, LogBehaviour.Verbose).SetCapacity(200, 10);

3、創建一個Tweener

截至目前,DOTween可以補間這些類型的值:?floatdoubleintuintlongulongVector2 / 3/4QuaternionRectRectOffsetColorstring?(其中一些值可以通過特殊方式進行補間) 此外,您可以創建自定義DOTween插件以補間自定義值類型。

有3種方法來創建一個Tweener:在通用的方式,快捷方式和更多的通用方式。

A. 通用方式

這是最靈活的補間方式,允許你幾乎任何值,公共或私有,靜態或動態 (只是你知道,快捷方式實際上在后臺使用通用方式)。

與快捷方式一樣,通用方式具有FROM備用版本。只需將From鏈接到Tweener,使補間表現為FROM補間而不是TO補間。

static DOTween.To(getter,setter,to,float duration)
B. 快捷方式

DOTween包含一些已知Unity對象的快捷方式,如TransformRigidbodyMaterial。您可以直接從對這些對象的引用啟動補間(這也將自動將對象本身設置為補間目標),如:

    transform.DOMove(new Vector3(2,3,4), 1);rigidbody.DOMove(new Vector3(2,3,4), 1);material.DOColor(Color.green, 1);

除非另有說明,否則這些快捷方式中的每一個都具有FROM備用版本。只需將From鏈接到Tweener,使補間表現為FROM補間而不是TO補間。

重要提示:當您將一個FROM分配給補間時,目標將立即跳轉到FROM位置(就像“編寫該行代碼的那一刻”,而不是“補間開始的那一刻”)。

    transform.DOMove(new Vector3(2,3,4), 1).From();rigidbody.DOMove(new Vector3(2,3,4), 1).From();material.DOColor(Color.green, 1).From();

AudioSource

DOFade(float to, float duration)
DOPitch(float to, float duration)

Camera

DOAspect(float to, float duration)
DOColor(Color to, float duration)
DOFarClipPlane(float to, float duration)
DOFieldOfView(float to, float duration)
DONearClipPlane(float to, float duration)
DOOrthoSize(float to, float duration)
DOPixelRect(Rect to, float duration)
DORect(Rect to, float duration)
DOShakePosition(float duration, float/Vector3 strength, int vibrato, bool fadeOut)
DOShakeRotation(float duration, float/Vector3 strength, int vibrato, float randomness bool fadeOut)

Light

DOColor(Color to, float duration)
DOIntensity(float to, float duration)
DOShadowStrength(float to, float duration)
可混合的補間
DOBlendableColor(Color to, float duration)

LineRenderer
DOColor(Color2 startValue, Color2 endValue, float duration)

Material

DOColor(Color to, float duration)
DOColor(Color to, string property, float duration)
DOFade(float to, float duration)
DOFade(float to, string property, float duration)
DOFloat(float to, string property, float duration)
DOGradientColor(Gradient to, float duration)
DOGradientColor(Gradient to, string property, float duration)
DOOffset(Vector2 to, float duration)
DOOffset(Vector2 to, string property, float duration)
DOTiling(Vector2 to, float duration)
DOTiling(Vector2 to, string property, float duration)
DOVector(Vector4 to, string property, float duration)
可混合的補間
DOBlendableColor(Color to, float duration)
DOBlendableColor(Color to, string property, float duration)

Rigidbody這些快捷方式在后臺使用剛體的MovePosition?/?MoveRotation方法,以正確設置與物理對象相關的內容。

DOMove(Vector3 to,float duration,bool snapping)
DOMoveX / DOMoveY / DOMoveZ(float to,float duration,bool snapping)
DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)

DORotate(Vector3 to, float duration, RotateMode mode)
DOLookAt(Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3 up = Vector3.up)
PRO ONLY ? Spiral – no FROM
DOSpiral(float duration, Vector3 axis = null, SpiralMode mode = SpiralMode.Expand, float speed = 1, float frequency = 10, float depth = 0, bool snapping = false)

SpriteRenderer

DOColor(Color to, float duration)
DOFade(float to, float duration)
DOGradientColor(Gradient to, float duration)

C. 其他通用方法

這些是允許以特定方式補間值的其他通用方法。這些也有FROM備用版本,除非另有說明。只需將From鏈接到Tweener,使補間表現為FROM補間而不是TO補間。

static DOTween.Punch(getter, setter, Vector3 direction, float duration, int vibrato, float elasticity)

static DOTween.Shake(getter, setter, float duration, float/Vector3 strength, int vibrato, float randomness, bool ignoreZAxis)

static DOTween.ToAlpha(getter, setter, float to, float duration)

static DOTween.ToArray(getter, setter, float to, float duration)

static DOTween.ToAxis(getter, setter, float to, float duration, AxisConstraint axis)

4、創建序列

序列類似于Tweeners,但它們不是動畫屬性或值,而是將其他TweenersSequences作為一組動畫。序列可以包含在其他序列中,而不限制層次結構的深度。排序的補間不必一個接一個。您可以使用Insert方法重疊補間。

補間(序列或Tweener)只能嵌套在單個其他序列中,這意味著您不能在多個序列中重用相同的補間。此外,主序列將控制其所有嵌套元素,并且您將無法單獨控制嵌套補間(將序列視為電影時間軸,一旦它第一次啟動就會變為固定)。

重要提示:不要使用空序列。

1.獲取要使用的新序列并將其存儲為引用

    static DOTween.Sequence()

2.將補間,間隔和回調添加到序列

請注意,所有這些方法都需要在序列開始之前應用(通常是在創建它之后的下一幀,除非它已暫停),否則它們將沒有任何效果。另請注意,任何嵌套的Tweener?/?Sequence都需要在將其添加到Sequence之前完全創建,因為之后它將被鎖定。

    Append(Tween tween)AppendCallback(TweenCallback callback)AppendInterval(float interval)Insert(float atPosition, Tween tween)InsertCallback(float atPosition, TweenCallback callback)Join(Tween tween)Prepend(Tween tween)PrependCallback(TweenCallback callback)PrependInterval(float interval)
    // 創建一個 Sequence
Sequence mySequence = DOTween.Sequence();// 在 Sequence 的開頭添加一個 1 秒的延遲
mySequence.PrependInterval(1);// 在 Sequence 的末尾添加一個移動 Tween,物體將在 X 軸上移動到 45,耗時 1 秒
mySequence.Append(transform.DOMoveX(45, 1));// 在移動 Tween 完成后,添加一個旋轉 Tween,物體將旋轉到 (0, 180, 0) 的角度,耗時 1 秒
mySequence.Append(transform.DORotate(new Vector3(0, 180, 0), 1));// 在 Sequence 的 0 秒處插入一個縮放 Tween,物體將縮放到 (3, 3, 3) 的大小,持續整個 Sequence 的時長
mySequence.Insert(0, transform.DOScale(new Vector3(3, 3, 3), mySequence.Duration()));動畫流程
延遲 1 秒:Sequence 開始前會等待 1 秒。
移動動畫:物體在 X 軸上從當前位置移動到 45,耗時 1 秒。
旋轉動畫:物體旋轉到 (0, 180, 0) 的角度,耗時 1 秒。
縮放動畫:物體從 Sequence 開始時就逐漸縮放到 (3, 3, 3) 的大小,持續整個 Sequence 的時長。Sequence mySequence = DOTween.Sequence();mySequence.Append(transform.DOMoveX(45, 1)).Append(transform.DORotate(new Vector3(0,180,0), 1)).PrependInterval(1).Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));

5、設置,選項和回調

在將設置應用于補間時,DOTween使用鏈接方法。或者,您可以更改將應用??于所有新創建的補間的全局默認選項。

全局設置
    static LogBehaviour DOTween.logBehaviourstatic bool DOTween.maxSmoothUnscaledTimestatic bool DOTween.showUnityEditorReportstatic float DOTween.timeScalestatic bool DOTween.useSafeModestatic bool DOTween.useSmoothDeltaTimestatic DOTween.SetTweensCapacity(int maxTweeners, int maxSequences)
應用于所有新創建的補間的設置
    static bool DOTween.defaultAutoKillstatic AutoPlay DOTween.defaultAutoPlaystatic float DOTween.defaultEaseOvershootOrAmplitudestatic float DOTween.defaultEasePeriodstatic Ease DOTween.defaultEaseTypestatic LoopType DOTween.defaultLoopTypestatic bool DOTween.defaultRecyclablestatic bool DOTween.defaultTimeScaleIndependentstatic UpdateType DOTween.defaultUpdateType
Tweener 和 Sequence 設置
    SetAs(Tween tween \ TweenParams tweenParams)SetAutoKill(bool autoKillOnCompletion = true)SetEase(Ease easeType \ AnimationCurve animCurve \ EaseFunction customEase)SetId(object id)SetLoops(int loops, LoopType loopType = LoopType.Restart)SetRecyclable(bool recyclable)SetRelative(bool isRelative = true)SetUpdate(UpdateType updateType, bool isIndependentUpdate = false)
    OnComplete(TweenCallback callback)OnKill(TweenCallback callback)OnPlay(TweenCallback callback)OnPause(TweenCallback callback)OnRewind(TweenCallback callback)OnStart(TweenCallback callback)OnStepComplete(TweenCallback callback)OnUpdate(TweenCallback callback)OnWaypointChange(TweenCallback<int> callback)
特定于Tweener的設置和選項

這些設置特定于Tweeners,對序列沒有影響。 除了SetEase在補間運行時鏈接這些設置將不起作用。

    From(bool isRelative = false)SetDelay(float delay)SetSpeedBased(bool isSpeedBased = true)

需要記住的重要一點是,雖然所有其他設置可以按任何順序鏈接在一起,但SetOptions?必須在補間創建功能之后立即鏈接,否則它將不再可用。

DOPath特定選項

    Path tween ? SetOptions(bool closePath, AxisConstraint lockPosition = AxisConstraint.None, AxisConstraint lockRotation = AxisConstraint.None)Path tween ? SetLookAt(Vector3 lookAtPosition/lookAtTarget/lookAhead, Vector3 forwardDirection, Vector3 up = Vector3.up)

6、路徑動畫 API?

1. 路徑動畫概述

路徑動畫允許物體沿著指定的路徑移動。Dotween 提供了兩種主要的路徑動畫方式:

  1. 使用?DOPath?物體沿著路徑移動,但不會調整自身方向。

  2. 使用?DOLocalPath?物體沿著局部路徑移動。

  3. 使用?DOPath?和?PathType.CatmullRom?使用 Catmull-Rom 樣條曲線生成平滑路徑。

2.解析
2.1 transform.DOPath

讓物體沿著指定的路徑點移動。

參數:

  • path?(Vector3[]): 路徑點的數組。

  • duration?(float): 動畫持續時間。

  • pathType?(PathType): 路徑類型,默認為直線路徑(PathType.Linear)。

  • pathMode?(PathMode): 路徑模式,默認為 3D 路徑(PathMode.Full3D)。

  • resolution?(int): 路徑分辨率,默認為 10。

  • gizmoColor?(Color): 在 Scene 視圖中繪制路徑的顏色。

// 定義路徑點
Vector3[] pathPoints = new Vector3[] {new Vector3(0, 0, 0),new Vector3(5, 5, 0),new Vector3(10, 0, 0)
};// 讓物體沿著路徑移動,耗時 3 秒
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetEase(Ease.Linear).OnComplete(() => Debug.Log("路徑動畫完成"));
2.2 transform.DOLocalPath

讓物體沿著局部坐標系下的路徑移動。

參數:
與?DOPath?相同。

// 定義局部路徑點
Vector3[] localPathPoints = new Vector3[] {new Vector3(0, 0, 0),new Vector3(2, 2, 0),new Vector3(4, 0, 0)
};// 讓物體沿著局部路徑移動,耗時 2 秒
transform.DOLocalPath(localPathPoints, 2, PathType.CatmullRom).SetEase(Ease.Linear);
2.3 transform.DOPath 的 LookAt 功能

讓物體在移動時始終朝向路徑方向。

參數:

  • lookAhead?(float): 向前看的位置偏移量,默認為 0.01。

  • forwardDirection?(Vector3): 物體的前方方向,默認為?Vector3.forward

  • up?(Vector3): 物體的上方方向,默認為?Vector3.up

// 讓物體沿著路徑移動,并始終朝向路徑方向
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetLookAt(0.01f) // 朝向路徑方向.SetEase(Ease.Linear);
2.4 tween.PathLength

計算路徑的長度。

2.5t ween.PathGetPoint

參數:

  • t?(float): 時間點(0 到 1 之間)。

    void Test_06(){Vector3[] pathPoints = new[] {new Vector3(0,1,0),new Vector3(0,2,0),new Vector3(0,3,0),new Vector3(0,4,0)};Tween tween = transform.DOPath(pathPoints, 3, PathType.Linear);tween.ForceInit();float pathLength = tween.PathLength();Debug.Log("路徑長度: " + pathLength);// 獲取路徑上 50% 時間點的位置Vector3 point = tween.PathGetPoint(0.5f);Debug.Log("路徑中點位置: " + point);}
3. 路徑動畫的高級功能
3.1 自定義路徑緩動

可以通過?SetEase?方法設置路徑動畫的緩動函數。

// 使用緩動函數
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetEase(Ease.InOutSine);
3.2 路徑動畫的循環

可以通過?SetLoops?方法設置路徑動畫的循環次數。

// 讓路徑動畫循環 3 次
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetLoops(3, LoopType.Restart);
3.3 路徑動畫的回調

可以通過?OnCompleteOnStartOnUpdate?等方法設置路徑動畫的回調。

// 設置路徑動畫的回調
transform.DOPath(pathPoints, 3, PathType.CatmullRom).OnStart(() => Debug.Log("路徑動畫開始")).OnUpdate(() => Debug.Log("路徑動畫進行中")).OnComplete(() => Debug.Log("路徑動畫完成"));

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895987.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895987.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895987.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【JAVA實戰】JAVA實現Excel模板下載并填充模板下拉選項數據

背景 有這樣一個場景&#xff1a;前端下載Excel模板&#xff0c;進行數據導入&#xff0c;這個下載模板過程需要經過后端接口去數據庫查詢數據進行某些列的下拉數據填充&#xff0c;下拉填充的數據過程中會出現錯誤String literals in formulas can’t be bigger than 255 cha…

【深度學習】計算機視覺(CV)-目標檢測-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目標檢測

1.什么是 DETR&#xff1f; DETR&#xff08;DEtection TRansformer&#xff09; 是 Facebook AI&#xff08;FAIR&#xff09;于 2020 年提出的 端到端目標檢測算法&#xff0c;它基于 Transformer 架構&#xff0c;消除了 Faster R-CNN、YOLO 等方法中的 候選框&#xff08;…

IDEA + 通義靈碼AI程序員:快速構建DDD后端工程模板

作者&#xff1a;陳榮健 IDEA 通義靈碼AI程序員&#xff1a;快速構建DDD后端工程模板 在軟件開發過程中&#xff0c;一個清晰、可維護、可擴展的架構至關重要。領域驅動設計 (DDD) 是一種軟件開發方法&#xff0c;它強調將軟件模型與業務領域緊密結合&#xff0c;從而構建更…

責任鏈模式原理詳解和源碼實例以及Spring AOP攔截器鏈的執行源碼如何使用責任鏈模式?

前言 本文首先介紹了責任鏈的基本原理&#xff0c;并附帶一個例子說明責任鏈模式&#xff0c;確保能夠理解責任鏈的前提下&#xff0c;在進行Spring AOP執行責任鏈的源碼分析。責任鏈模式允許將多個處理對象連接成鏈&#xff0c;請求沿著鏈傳遞&#xff0c;直到被處理或結束。每…

React 與 Vue 對比指南 - 上

React 與 Vue 對比指南 - 上 本文將展示如何在 React 和 Vue 中實現常見功能&#xff0c;從基礎渲染到高級狀態管理 Hello 分別使用 react 和 vue 寫一個 Hello World&#xff01; react export default () > {return <div>Hello World!</div>; }vue <…

大模型開發實戰篇7:語音識別-語音轉文字

語音識別大模型&#xff0c;是人工智能領域的一項重要技術&#xff0c;它能夠將人類的語音轉換為文本。近年來&#xff0c;隨著深度學習技術的不斷發展&#xff0c;語音識別大模型取得了顯著的進展&#xff0c;并在各個領域得到了廣泛應用。 主流語音識別大模型 目前&#xf…

向量的點乘的幾何意義

源自AI 向量的點乘&#xff08;Dot Product&#xff09;在幾何和圖形學中有重要的意義。它不僅是數學運算&#xff0c;還可以用來描述向量之間的關系。以下是點乘的幾何意義及其應用&#xff1a; 1. 點乘的定義 對于兩個向量 a 和 b&#xff0c;它們的點乘定義為&#xff1a;…

國產芯片汽車氣壓表pcba方案

汽車氣壓表的基本原理是利用氣壓傳感器將氣體氣壓轉換為電信號&#xff0c;再通過電子芯片電路進行處理傳輸&#xff0c;再將這些信息轉發給顯示屏顯示。常見的傳感器包括模擬氣壓傳感器和數字氣壓傳感器。其中&#xff0c;模擬氣壓傳感器是目前應用最廣泛的傳感器之一&#xf…

解鎖機器學習核心算法 | K -近鄰算法:機器學習的神奇鑰匙

一、引言 今天我們繼續學習機器學習核心算法 —— K - 近鄰&#xff08;K-Nearest Neighbors&#xff0c;簡稱 KNN&#xff09;算法。它就像是一位經驗豐富的 “老江湖”&#xff0c;以其簡單而又強大的方式&#xff0c;在眾多機器學習任務中占據著不可或缺的地位。 K - 近鄰…

如何在Windows 10操作系統中安裝并配置PHP集成軟件XAMPP

步驟1&#xff1a;下載XAMPP安裝包 訪問XAMPP官網&#xff1a; 打開瀏覽器&#xff0c;進入XAMPP官方網站&#xff1a;https://www.apachefriends.org/index.html 選擇XAMPP版本&#xff1a; 在XAMPP的下載頁面上&#xff0c;選擇適合Windows的最新穩定版本下載&#xff08;例…

【DeepSeek】本地部署,保姆級教程

deepseek網站鏈接傳送門&#xff1a;DeepSeek 在這里主要介紹DeepSeek的兩種部署方法&#xff0c;一種是調用API&#xff0c;一種是本地部署。 一、API調用 1.進入網址Cherry Studio - 全能的AI助手選擇立即下載 2.安裝時位置建議放在其他盤&#xff0c;不要放c盤 3.進入軟件后…

Python 入門教程(2)搭建環境 | 2.3、VSCode配置Python開發環境

文章目錄 一、VSCode配置Python開發環境1、軟件安裝2、安裝Python插件3、配置Python環境4、包管理5、調試程序 前言 Visual Studio Code&#xff08;簡稱VSCode&#xff09;以其強大的功能和靈活的擴展性&#xff0c;成為了許多開發者的首選。本文將詳細介紹如何在VSCode中配置…

Oracle EBS 12.1和APEX 集成時 Apache的配置代理

在有些場景下&#xff0c;apex的前端服務不是和oracle EBS 應用部署在同一個服務器上或者要求apex和訪問地址和EBS公用同一個域名同一個端口&#xff0c;那么怎么才能做到用EBS 的域名和端口來實現對apex的訪問呢 通過配置代理規則解決&#xff0c;以Oracle EBS 12.1.3 為例&am…

【第二節】C++設計模式(創建型模式)-抽象工廠模式

目錄 引言 一、抽象工廠模式概述 二、抽象工廠模式的應用 三、抽象工廠模式的適用場景 四、抽象工廠模式的優缺點 五、總結 引言 抽象工廠設計模式是一種創建型設計模式&#xff0c;旨在解決一系列相互依賴對象的創建問題。它與工廠方法模式密切相關&#xff0c;但在應用…

ubuntu20.04重啟后不顯示共享文件夾

ubuntu20.04重啟后不顯示共享文件夾 主要參見這兩篇博客 Ubuntu重啟后不顯示共享文件夾_ubuntu 20.04 共享目錄無法使用-CSDN博客 ubuntu22.04 配置共享文件夾 找不到/mnt/hgfs_ubuntu安裝tools 后mnt文件夾在哪-CSDN博客 重啟Ubuntu20.04后&#xff0c;發現共享文件夾進不去…

halcon機器視覺深度學習對象檢測,物體檢測

目錄 效果圖操作步驟軟件版本halcon參考代碼本地函數 get_distinct_colors()本地函數 make_neighboring_colors_distinguishable() 效果圖 操作步驟 首先要在Deep Learning Tool工具里面把圖片打上標注文本&#xff0c; 然后訓練模型&#xff0c;導出模型文件 這個是模型 mod…

9.PG數據庫層權限管理(pg系列課程)第2遍

一、PostgreSQL數據庫屬主 Postgres中的數據庫屬主屬于創建者&#xff0c;只要有createdb的權限就可以創建數據庫&#xff0c;數據庫屬主不一定擁有存放在該數據庫中其它用戶創建的對象的訪問權限。數據庫在創建后&#xff0c;允許public角色連接&#xff0c;即允許任何人連接…

2.19學習(php文件后綴)

misc buu-后門查殺 下載附件&#xff0c;我們用火絨安全掃一下然后點擊詳情進入該文件所在文件夾&#xff0c;再用記事本打開該文件&#xff0c;搜索flag無果&#xff0c;再試試pass&#xff08;由題目中的密碼聯系到pass&#xff0c;password&#xff0c;key等&#xff09;&a…

PMBOK第7版整體架構全面詳解

1. 引言 7月1日對于項目管理從業者和研究者而言&#xff0c;是個非凡意義的一個時間&#xff0c;這一天&#xff0c;翹首以待的《 項 目管理知識體系指南 》&#xff08;PMBOK&#xff09;第七版終于發布了。 總體而言&#xff0c;PMBOK第七版集百家之所長&#xff0c;成一…

C++:類與對象,定義類和構造函數

#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; //如何讓定義一個類 // 封裝 // 1、將數據和方法定義到一起。 // 2、把想給你看的數據給你看&#xff0c;不想給你看的封裝起來。 通過訪問限定符來實現 class Stack { public: //1.成…