1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-17 14:18:13 +01:00
dotSCAD/docs/lib3x-m_shearing.md
2022-04-06 17:44:11 +08:00

1.3 KiB

m_shearing

Generate a 4x4 transformation matrix which can pass into multmatrix to shear all child elements along the X-axis, Y-axis, or Z-axis in 3D.

Since: 1.1

Parameters

  • sx : An array [SHy, SHz]. The new coordinates of child elements are (x + SHy * y + SHz * z, y, z).
  • sy : An array [SHx, SHz]. The new coordinates of child elements are (x, y + SHx * x + SHz * z, z).
  • sz : An array [SHx, SHy]. The new coordinates of child elements are (x, y, z + SHx * x + SHy * y).

Examples

use <matrix/m_shearing.scad>;

color("red") {
	multmatrix(m_shearing(sx = [1, 0]))
		cube(1);
		
	translate([2, 0, 0]) 
	multmatrix(m_shearing(sx = [0, 1]))
		cube(1);
		
	translate([4, 0, 0]) 
	multmatrix(m_shearing(sx = [1, 1]))
		cube(1);
}

translate([0, -3, 0]) color("green") {
	multmatrix(m_shearing(sy = [1, 0]))
		cube(1);
		
	translate([2, 0, 0]) 
	multmatrix(m_shearing(sy = [0, 1]))
		cube(1);
		
	translate([4, 0, 0]) 
	multmatrix(m_shearing(sy = [1, 1]))
		cube(1);
}

translate([0, -5, 0]) color("blue") {
	multmatrix(m_shearing(sz = [1, 0]))
		cube(1);
		
	translate([2, 0, 0]) 
	multmatrix(m_shearing(sz = [0, 1]))
		cube(1);
		
	translate([4, 0, 0]) 
	multmatrix(m_shearing(sz = [1, 1]))
		cube(1);
}

m_shearing