Weekly Shaarli
Week 33 (August 12, 2024)
Rotors are a rotation representation generalized from Quaternions and Complex numbers that works in any numbers of dimensions.
The article starts by pointing out that rotation is defined as a scalar property on a plane. The canonical representation of a plane is a bivector representing the outer product of two vectors. The bivector is in principle a fundamental concept just like the vector. Similar to how a vector represents a point with a scalar length, a bivector represents a plane with a scalar area (signed). The area of a bivector a∧b is |a||b|sin(angle). The reason we also see the term |a||b|sin(angle) from cross product is because cross product actually gives rise to a bivector instead a vector! Historically we've been confusing bivectors with vectors because they have the same representation in 3D.
The inner and outer product completes a geometric product of two vectors: ab=a⋅b+a∧b. Reflection R(a,v) is defined elegantly using geometric product: R(a,v)=-ava. Then it's noted that two reflections is equivalent to a rotation by twice the angle between a and b: R(a,R(b,v))=ba v ab. The "ab" here is known as a rotor. Applying a rotor on both sides of a vector rotates this vector in the plane a∧b by twice the angle between a and b. Quaternion is just a representation of Rotors in 3d: i:=y∧z, j:=z∧x, k:=k∧y. The scalar part (w in w+xi+yj+zk) corresponds to the inner product.
Keywords: bivector, geometric product, rotor, quaternion, rotation, geometric-algebra
The naive collision detection algorithm takes O(n^2) by checking pairwise intersection. To improve the performance, sort the objects by x coordinates, scan from left to right and only check intersection if a.right < b.left. This method can be extended into 2D to further eliminate the necessary comparisons. Finally, note that insertion sort is more performant on mostly sorted lists than quick sorts, so it's more suitable in this case.
A comprehensive guide on various types of linux virtual networking interfaces. keywords: vlan, vxlan, macvlan, ipvlan, macvtap, ipvtap, veth, vcan, vxcan, ipoib, nlmon, dummy interface, ifb.