Skip to content

Instantly share code, notes, and snippets.

@KeyWeeUsr
Forked from johannesmueller-fr/log.txt
Created February 6, 2018 22:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KeyWeeUsr/a03f7cf4fc24b74379acba5dbeff85ee to your computer and use it in GitHub Desktop.
Save KeyWeeUsr/a03f7cf4fc24b74379acba5dbeff85ee to your computer and use it in GitHub Desktop.
Unpredictable behaviour in Vector.segment_intersection()
[INFO ] Logger: Record log in /home/waschtl/.kivy/logs/kivy_15-02-02_58.txt
[INFO ] Kivy v1.8.0
[INFO ] Factory: 157 symbols loaded
[DEBUG ] Cache: register <kv.lang> with limit=None, timeout=Nones
[DEBUG ] Cache: register <kv.image> with limit=None, timeout=60s
[DEBUG ] Cache: register <kv.atlas> with limit=None, timeout=Nones
[INFO ] Image: Providers: img_tex, img_dds, img_pygame, img_pil, img_gif
[DEBUG ] Cache: register <kv.texture> with limit=1000, timeout=60s
[DEBUG ] Cache: register <kv.shader> with limit=1000, timeout=3600s
[DEBUG ] App: Loading kv <./test.kv>
[DEBUG ] App: kv <./test.kv> not found
[DEBUG ] Window: Ignored <egl_rpi> (import error)
[INFO ] Window: Provider: pygame(['window_egl_rpi'] ignored)
[DEBUG ] Window: Display driver x11
[DEBUG ] Window: Actual window size: %dx%d
[DEBUG ] Window: Actual color bits r%d g%d b%d a%d
[DEBUG ] Window: Actual depth bits: %d
[DEBUG ] Window: Actual stencil bits: %d
[DEBUG ] Window: Actual multisampling samples: %d
[INFO ] GL: OpenGL version <b'3.0 Mesa 10.5.0-devel'>
[INFO ] GL: OpenGL vendor <b'X.Org'>
[INFO ] GL: OpenGL renderer <b'Gallium 0.4 on AMD RS880'>
[INFO ] GL: OpenGL parsed version: 3, 0
[INFO ] GL: Shading version <b'1.30'>
[INFO ] GL: Texture max size <8192>
[INFO ] GL: Texture max units <16>
[DEBUG ] Shader: Fragment compiled successfully
[DEBUG ] Shader: Vertex compiled successfully
[DEBUG ] ImagePygame: Load </usr/lib/python3/dist-packages/kivy/data/glsl/default.png>
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Text: Provider: pygame
[INFO ] OSC: using <multiprocessing> for socket
[DEBUG ] Base: Create provider from mouse
[DEBUG ] Base: Create provider from probesysfs
[DEBUG ] ProbeSysfs: using probsysfs!
[DEBUG ] ProbeSysfs: found device: SynPS/2 Synaptics TouchPad at /dev/input/event4
[INFO ] ProbeSysfs: device match: /dev/input/event4
[INFO ] MTD: Read event from </dev/input/event4>
[INFO ] Base: Start application main loop
[INFO ] GL: NPOT texture support is available
[DEBUG ] Atlas: Load </usr/lib/python3/dist-packages/kivy/data/../data/images/defaulttheme.atlas>
[DEBUG ] Atlas: Need to load 1 images
[DEBUG ] Atlas: Load </usr/lib/python3/dist-packages/kivy/data/../data/images/defaulttheme-0.png>
[DEBUG ] ImagePygame: Load </usr/lib/python3/dist-packages/kivy/data/../data/images/defaulttheme-0.png>
[WARNING ] stderr: Exception in thread Thread-1:
[WARNING ] stderr: Traceback (most recent call last):
[WARNING ] stderr: File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
[WARNING ] stderr: self.run()
[WARNING ] stderr: File "/usr/lib/python3.4/threading.py", line 868, in run
[WARNING ] stderr: self._target(*self._args, **self._kwargs)
[WARNING ] stderr: File "/usr/lib/python3/dist-packages/kivy/input/providers/mtdev.py", line 193, in _thread_run
[WARNING ] stderr: _device = Device(_fn)
[WARNING ] stderr: File "/usr/lib/python3/dist-packages/kivy/lib/mtdev.py", line 131, in __init__
[WARNING ] stderr: self._fd = os.open(filename, os.O_NONBLOCK | os.O_RDONLY)
[WARNING ] stderr: PermissionError: [Errno 13] Permission denied: '/dev/input/event4'
[WARNING ] stderr:
[INFO ] Base: Leaving application in progress...
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999999999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999999999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999999999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.0)
=> [25.0, 300.0]
--------------------------------------------------------------------------------
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111111111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111111111, 300.0)
=> None
--------------------------------------------------------------------------------
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444444445, 300.0)
=> [25.0, 300.0]
--------------------------------------------------------------------------------
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49)
=> [25.0, 300.1903305785124]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499)
=> [25.0, 300.193826446281]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999)
=> [25.0, 300.19417603305783]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49999)
=> [25.0, 300.19421099173553]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499999)
=> [25.0, 300.1942144876033]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999999)
=> [25.0, 300.19421483719003]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49999999)
=> [25.0, 300.1942148721488]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499999999)
=> [25.0, 300.19421487564466]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999999999)
=> [25.0, 300.19421487599425]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49999999999)
=> [25.0, 300.19421487602915]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499999999999)
=> [25.0, 300.1942148760326]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999999999999)
=> [25.0, 300.194214876033]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.5)
=> [25.0, 300.1942148760331]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.5)
=> [25.0, 300.1942148760331]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.5)
=> [25.0, 300.1942148760331]
--------------------------------------------------------------------------------
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4999999999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.49999999999999, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.499999999999999, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.0)
=> [25.0, 300.0]
--------------------------------------------------------------------------------
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.1111111111111, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.11111111111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111111111, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.111111111111111, 300.0)
=> None
--------------------------------------------------------------------------------
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.4444444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.44444444444444, 300.0)
=> None
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444444444, 300.0)
=> [25.0, 300.0]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.444444444444445, 300.0)
=> [25.0, 300.0]
--------------------------------------------------------------------------------
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49)
=> [25.0, 300.1903305785124]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499)
=> [25.0, 300.193826446281]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999)
=> [25.0, 300.19417603305783]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49999)
=> [25.0, 300.19421099173553]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499999)
=> [25.0, 300.1942144876033]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999999)
=> [25.0, 300.19421483719003]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49999999)
=> [25.0, 300.1942148721488]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499999999)
=> [25.0, 300.19421487564466]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999999999)
=> [25.0, 300.19421487599425]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.49999999999)
=> [25.0, 300.19421487602915]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.499999999999)
=> [25.0, 300.1942148760326]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.4999999999999)
=> [25.0, 300.194214876033]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.5)
=> [25.0, 300.1942148760331]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.5)
=> [25.0, 300.1942148760331]
Result of: (25.0, 200.0) (25.0, 400.0) (36.75, 300.0) (6.5, 300.5)
=> [25.0, 300.1942148760331]
--------------------------------------------------------------------------------
from kivy.app import App
from kivy.lang import Builder
from kivy.factory import Factory
from kivy.uix.boxlayout import BoxLayout
from kivy.vector import Vector
kv = """
<Test>:
orientation: 'vertical'
Button:
text: 'Vector intersection!'
on_press: root.callback()
"""
Builder.load_string(kv)
class Test(BoxLayout):
def __init__(self, *args, **kwargs):
super(Test, self).__init__(*args, **kwargs)
self.callback()
def callback(self):
# these vectors are taken from an application I tried to code
v1 = (25.0, 200.0)
v2 = (25.0, 400.0)
v3 = (36.75, 300.0)
# I realized that for the vector (6.4999999999999964, 300.0)
# the intersection doesn't work. I tried some combinations
# which produced some unpredictable results!
for i in range(1, 16):
st = "6.4" + "9" * i
v = (float(st), 300.0)
print("Result of:", v1, v2, v3, v)
print(" => ", Vector.segment_intersection(v1,v2,v3,v))
print("-" * 80)
for i in range(1, 16):
st = "6.1" + "1" * i
v = (float(st), 300.0)
print("Result of:", v1, v2, v3, v)
print(" => ", Vector.segment_intersection(v1,v2,v3,v))
print("-" * 80)
for i in range(1, 16):
st = "6.4" + "4" * i
v = (float(st), 300.0)
print("Result of:", v1, v2, v3, v)
print(" => ", Vector.segment_intersection(v1,v2,v3,v))
print("-" * 80)
for i in range(1, 16):
st = "300.4" + "9" * i
v = (6.5, float(st))
print("Result of:", v1, v2, v3, v)
print(" => ", Vector.segment_intersection(v1,v2,v3,v))
print("-" * 80)
class TestApp(App):
def build(self):
return Test()
if __name__ == '__main__':
TestApp().run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment