kaxe 1.5.1.dev0__tar.gz → 1.5.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. {kaxe-1.5.1.dev0/src/kaxe.egg-info → kaxe-1.5.2}/PKG-INFO +1 -1
  2. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/pyproject.toml +1 -1
  3. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/inequality.py +34 -5
  4. {kaxe-1.5.1.dev0 → kaxe-1.5.2/src/kaxe.egg-info}/PKG-INFO +1 -1
  5. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/LICENSE +0 -0
  6. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/MANIFEST.in +0 -0
  7. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/README.md +0 -0
  8. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/setup.cfg +0 -0
  9. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/__init__.py +0 -0
  10. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/_require_3d.py +0 -0
  11. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/chart/__init__.py +0 -0
  12. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/chart/bar.py +0 -0
  13. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/chart/box.py +0 -0
  14. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/chart/pie.py +0 -0
  15. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/chart/qqplot.py +0 -0
  16. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/__init__.py +0 -0
  17. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/axis.py +0 -0
  18. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/bounds.py +0 -0
  19. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/color.py +0 -0
  20. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/backend.py +0 -0
  21. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/camera.py +0 -0
  22. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/helper.py +0 -0
  23. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/hud.py +0 -0
  24. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/objects/__init__.py +0 -0
  25. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/objects/color.py +0 -0
  26. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/objects/line.py +0 -0
  27. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/objects/point.py +0 -0
  28. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/objects/pointer.py +0 -0
  29. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/objects/triangle.py +0 -0
  30. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/openglrender.py +0 -0
  31. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/d3/translator.py +0 -0
  32. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/draw.py +0 -0
  33. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/fileloader.py +0 -0
  34. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/helper.py +0 -0
  35. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/legend.py +0 -0
  36. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/line.py +0 -0
  37. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/marker.py +0 -0
  38. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/profiler.py +0 -0
  39. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/round.py +0 -0
  40. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/shapes.py +0 -0
  41. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/styles.py +0 -0
  42. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/svg.py +0 -0
  43. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/svg_pdf.py +0 -0
  44. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/symbol.py +0 -0
  45. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/text.py +0 -0
  46. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/core/window.py +0 -0
  47. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/data/__init__.py +0 -0
  48. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/data/excel.py +0 -0
  49. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/__init__.py +0 -0
  50. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/_lazy.py +0 -0
  51. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/__init__.py +0 -0
  52. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/arrow.py +0 -0
  53. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/bubble.py +0 -0
  54. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/contour.py +0 -0
  55. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/equation.py +0 -0
  56. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/fill.py +0 -0
  57. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/function.py +0 -0
  58. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/map.py +0 -0
  59. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/parameter.py +0 -0
  60. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/pillar.py +0 -0
  61. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d2/point.py +0 -0
  62. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d3/__init__.py +0 -0
  63. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d3/base.py +0 -0
  64. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d3/function.py +0 -0
  65. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d3/mesh.py +0 -0
  66. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d3/point.py +0 -0
  67. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/d3/potato.py +0 -0
  68. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/function.py +0 -0
  69. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/legend.py +0 -0
  70. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/mapdata.py +0 -0
  71. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/point.py +0 -0
  72. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/objects/text.py +0 -0
  73. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/__init__.py +0 -0
  74. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/_lazy.py +0 -0
  75. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/box.py +0 -0
  76. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/constants.py +0 -0
  77. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/d3/__init__.py +0 -0
  78. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/d3/axes.py +0 -0
  79. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/d3/geometry.py +0 -0
  80. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/d3/plot3d.py +0 -0
  81. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/d3/variants.py +0 -0
  82. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/double.py +0 -0
  83. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/empty.py +0 -0
  84. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/grid.py +0 -0
  85. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/log.py +0 -0
  86. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/polar.py +0 -0
  87. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/standard.py +0 -0
  88. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/themes.py +0 -0
  89. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/zoom.py +0 -0
  90. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/plot/zoom_connector.py +0 -0
  91. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/__init__.py +0 -0
  92. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/__init__.py +0 -0
  93. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.bright-oblique.ttf +0 -0
  94. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.bright-roman.ttf +0 -0
  95. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.bright-semibold.ttf +0 -0
  96. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.bright-semiboldoblique.ttf +0 -0
  97. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.classical-serif-italic.ttf +0 -0
  98. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.concrete-bold.ttf +0 -0
  99. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.concrete-bolditalic.ttf +0 -0
  100. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.concrete-italic.ttf +0 -0
  101. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.concrete-roman.ttf +0 -0
  102. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-bold.ttf +0 -0
  103. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-boldoblique.ttf +0 -0
  104. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-demi-condensed-demicondensed.ttf +0 -0
  105. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-medium.ttf +0 -0
  106. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-oblique.ttf +0 -0
  107. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.serif-bold.ttf +0 -0
  108. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.serif-bolditalic.ttf +0 -0
  109. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.serif-extra-boldslanted.ttf +0 -0
  110. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.serif-extra-romanslanted.ttf +0 -0
  111. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.serif-italic.ttf +0 -0
  112. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.serif-roman.ttf +0 -0
  113. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.serif-upright-italic-uprightitalic.ttf +0 -0
  114. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-bold.ttf +0 -0
  115. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-bolditalic.ttf +0 -0
  116. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-italic.ttf +0 -0
  117. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-light.ttf +0 -0
  118. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-lightoblique.ttf +0 -0
  119. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-regular.ttf +0 -0
  120. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-variable-width-italic.ttf +0 -0
  121. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-variable-width-medium.ttf +0 -0
  122. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/computer-modern-family/readme.txt +0 -0
  123. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/logo-small.png +0 -0
  124. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/symbolcross.png +0 -0
  125. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/symboldonut.png +0 -0
  126. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/symbollollipop.png +0 -0
  127. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe/resources/symboltriangle.png +0 -0
  128. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe.egg-info/SOURCES.txt +0 -0
  129. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe.egg-info/dependency_links.txt +0 -0
  130. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe.egg-info/requires.txt +0 -0
  131. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/src/kaxe.egg-info/top_level.txt +0 -0
  132. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/tests/test.py +0 -0
  133. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/tests/test2.py +0 -0
  134. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/tests/test3.py +0 -0
  135. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/tests/test_4.py +0 -0
  136. {kaxe-1.5.1.dev0 → kaxe-1.5.2}/tests/test_5.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaxe
3
- Version: 1.5.1.dev0
3
+ Version: 1.5.2
4
4
  Summary: A small graphing tool for functions, points, equations and more
5
5
  Author-email: Valter Yde Daugberg <valteryde@hotmail.com>
6
6
  Project-URL: Homepage, https://github.com/valteryde/kaxe
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kaxe"
3
- version = "1.5.1.dev0"
3
+ version = "1.5.2"
4
4
  authors = [
5
5
  { name="Valter Yde Daugberg", email="valteryde@hotmail.com" },
6
6
  ]
@@ -1,3 +1,4 @@
1
+ import math
1
2
 
2
3
  from ...core.shapes import shapes
3
4
  from ...core.color import to_rgba
@@ -65,6 +66,9 @@ class Inequality:
65
66
  Pixel spacing between parallel hatch lines (default is 10).
66
67
  hatch_width : int, optional
67
68
  Hatch line thickness (default is 1).
69
+ hatch_angle : float, optional
70
+ Hatch line angle in degrees, measured counter-clockwise from the
71
+ horizontal axis (default is 45).
68
72
  computePadding : int, optional
69
73
  Extra padding when sampling the plot area (default is 50).
70
74
 
@@ -85,6 +89,7 @@ class Inequality:
85
89
  hatch_color=(255, 0, 0, 180),
86
90
  hatch_spacing=10,
87
91
  hatch_width=1,
92
+ hatch_angle=45,
88
93
  computePadding=50,
89
94
  ):
90
95
  self.left = left
@@ -92,6 +97,7 @@ class Inequality:
92
97
  self.computePadding = computePadding
93
98
  self.hatch_spacing = hatch_spacing
94
99
  self.hatch_width = hatch_width
100
+ self.hatch_angle = hatch_angle
95
101
  self.hatch_color = to_rgba(hatch_color)
96
102
 
97
103
  if op not in _OPS:
@@ -123,14 +129,37 @@ class Inequality:
123
129
  scale = getattr(parent, 'getVisualScale', lambda: 1.0)()
124
130
  hatch_width = max(1, int(self.hatch_width * scale))
125
131
 
126
- max_extent = int(width + height)
127
- for offset in range(-int(height), int(width + height), spacing):
132
+ angle_rad = math.radians(self.hatch_angle)
133
+ dx = math.cos(angle_rad)
134
+ dy = math.sin(angle_rad)
135
+ nx = -dy
136
+ ny = dx
137
+
138
+ corners = ((x0, y0), (x1, y0), (x0, y1), (x1, y1))
139
+ normal_proj = [nx * cx + ny * cy for cx, cy in corners]
140
+ o_min = int(min(normal_proj)) - spacing
141
+ o_max = int(max(normal_proj)) + spacing
142
+
143
+ for o in range(o_min, o_max + 1, spacing):
128
144
  segment_start = None
129
145
  last_point = None
130
146
 
131
- for t in range(0, max_extent, sample_step):
132
- px = x0 + t
133
- py = y0 + t + offset
147
+ base_x = x0 + o * nx
148
+ base_y = y0 + o * ny
149
+ t_values = []
150
+ for cx, cy in corners:
151
+ if abs(dx) > 1e-9:
152
+ t_values.append((cx - base_x) / dx)
153
+ if abs(dy) > 1e-9:
154
+ t_values.append((cy - base_y) / dy)
155
+ if not t_values:
156
+ continue
157
+ t_start = int(min(t_values)) - 1
158
+ t_end = int(max(t_values)) + 1
159
+
160
+ for t in range(t_start, t_end, sample_step):
161
+ px = base_x + t * dx
162
+ py = base_y + t * dy
134
163
 
135
164
  if px < x0 or px > x1 or py < y0 or py > y1:
136
165
  if segment_start is not None and last_point is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaxe
3
- Version: 1.5.1.dev0
3
+ Version: 1.5.2
4
4
  Summary: A small graphing tool for functions, points, equations and more
5
5
  Author-email: Valter Yde Daugberg <valteryde@hotmail.com>
6
6
  Project-URL: Homepage, https://github.com/valteryde/kaxe
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes