
- Kivy 教程
- Kivy - 首頁
- Kivy 基礎
- Kivy - 入門
- Kivy - 安裝
- Kivy - 架構
- Kivy - 檔案語法
- Kivy - 應用
- Kivy - Hello World
- Kivy - 應用生命週期
- Kivy - 事件
- Kivy - 屬性
- Kivy - 輸入
- Kivy - 行為
- Kivy 按鈕
- Kivy - 按鈕
- Kivy - 按鈕事件
- Kivy - 按鈕顏色
- Kivy - 按鈕大小
- Kivy - 按鈕位置
- Kivy - 圓形按鈕
- Kivy - 停用按鈕
- Kivy - 圖片按鈕
- Kivy 小部件
- Kivy - 小部件
- Kivy - 標籤
- Kivy - 文字輸入
- Kivy - 畫布
- Kivy - 線
- Kivy - 複選框
- Kivy - 下拉列表
- Kivy - 視窗
- Kivy - 滾動檢視
- Kivy - 走馬燈
- Kivy - 滑塊
- Kivy - 圖片
- Kivy - 彈出視窗
- Kivy - 開關
- Kivy - 微調器
- Kivy - 分隔器
- Kivy - 進度條
- Kivy - 氣泡
- Kivy - 選項卡面板
- Kivy - 散點圖
- Kivy - 手風琴
- Kivy - 檔案選擇器
- Kivy - 顏色選擇器
- Kivy - 程式碼輸入
- Kivy - 模態檢視
- Kivy - 切換按鈕
- Kivy - 攝像頭
- Kivy - 樹檢視
- Kivy - reStructuredText
- Kivy - 操作欄
- Kivy - 播放器
- Kivy - 模板檢視
- Kivy - 虛擬鍵盤
- Kivy - 觸控波紋
- Kivy - 音訊
- Kivy - 影片
- Kivy - 拼寫檢查
- Kivy - 效果
- Kivy - 輸入記錄器
- Kivy - OpenGL
- Kivy - 文字
- Kivy - 文字標記
- Kivy - 設定
- Kivy 佈局
- Kivy - 佈局
- Kivy - 浮動佈局
- Kivy - 網格佈局
- Kivy - 箱式佈局
- Kivy - 堆疊佈局
- Kivy - 錨點佈局
- Kivy - 相對佈局
- Kivy - 頁面佈局
- Kivy - 回收佈局
- Kivy - 佈局巢狀
- Kivy 高階概念
- Kivy - 配置物件
- Kivy - 圖集
- Kivy - 資料載入器
- Kivy - 快取管理器
- Kivy - 控制檯
- Kivy - 動畫
- Kivy - 多筆畫
- Kivy - 時鐘
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪貼簿
- Kivy - 工廠
- Kivy - 手勢
- Kivy - 語言
- Kivy - 圖形
- Kivy - 繪製
- Kivy - 打包
- Kivy - 花園
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用和專案
- Kivy - 繪圖應用
- Kivy - 計算器應用
- Kivy - 計時器應用
- Kivy - 攝像頭處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 圓形繪製
- Kivy - 小部件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 向量
在歐幾里得幾何中,向量是一個表示具有大小和方向的物理量的物件。Kivy 庫包含 Vector 類,並提供執行二維向量運算的功能。
Vector 類定義在 kivy.vector 模組中。Kivy 的 Vector 類繼承了 Python 的內建列表類。透過在笛卡爾座標系中傳遞 x 和 y 座標值來例項化 Vector 物件。
from kivy.vector import Vector v=vector(10,10)
這兩個引數可以透過下標運算子訪問。第一個引數是 v[0],第二個引數是 v[1]。
print (v[0], v[1])
它們也被識別為 Vector 物件的 x 和 y 屬性。
print (v.x, v.y)
您還可以透過向建構函式傳遞一個包含兩個值的列表或元組來初始化向量。
vals = [10,10] v = Vector(vals)
示例
Kivy 中的 Vector 類支援由常用算術運算子 +、-、/ 表示的向量運算。
兩個向量 (a,b)+(c,d) 的加法結果為向量 (a+c, b+d)。類似地,“(a,b) - (c,d)” 等於 “(a − c, b − d)”。
from kivy.vector import Vector a = (10, 10) b = (87, 34) print ("addition:",Vector(1, 1) + Vector(9, 5)) print ("Subtraction:",Vector(9, 5) - Vector(5, 5)) print ("Division:",Vector(10, 10) / Vector(2., 4.)) print ("division:",Vector(10, 10) / 5.)
輸出
addition: [10, 6] Subtraction: [4, 0] Division: [5.0, 2.5] division: [2.0, 2.0]
Vector 類中的方法
Kivy 的 Vector 類中定義了以下方法 -
angle()
它計算向量和引數向量之間的角度,並以度為單位返回角度。
在數學上,向量之間的角度由以下公式計算 -
$$\theta =cos^{-1}\left [ \frac{x\cdot y}{\left| x\right|\left|y \right|} \right ]$$
查詢角度的 Kivy 程式碼為 -
示例
a=Vector(100, 0) b=(0, 100) print ("angle:",a.angle(b))
輸出
angle: -90.0
distance()
它返回兩點之間的距離。兩個向量之間的歐幾里得距離由以下公式計算 -
$$d\left ( p,q \right )=\sqrt{\left ( q_{1}-p_{1} \right )^{2}+\left ( q_{2}-p_{2} \right )^{2}}$$
distance() 方法更易於使用。
示例
a = Vector(90, 33) b = Vector(76, 34) print ("Distance:",a.distance(b))
輸出
Distance: 14.035668847618199
distance2()
它返回兩點之間的距離的平方。兩個向量 x = [ x1, x2 ] 和 y = [ y1, y2 ] 之間的平方距離是其座標中平方差的總和。
示例
a = (10, 10) b = (5,10) print ("Squared distance:",Vector(a).distance2(b))
輸出
Squared distance: 25
dot(a)
計算“a”和“b”的點積。“a”和“b”的點積(也稱為標量積)是向量 b 的大小乘以“a”在“b”上的投影的大小。投影的大小為 $cos\theta$(其中 $\theta$ 是兩個向量之間的角度)。
示例
print ("dot product:",Vector(2, 4).dot((2, 2)))
輸出
dot product: 12
length()
它返回向量的長度。length2() 方法返回向量的長度的平方。
示例
pos = (10, 10) print ("length:",Vector(pos).length()) print ("length2:",Vector(pos).length2())
輸出
length: 14.142135623730951 length2: 200
rotate(angle)
以度為單位旋轉向量。
示例
v = Vector(100, 0) print ("rotate:",v.rotate(45))
輸出
rotate: [70.71067811865476, 70.71067811865476]