مكتبة بيثون للقيام بالتلاعب الهندسي للنقاط والمتجهات ذات الأبعاد التعسفية ، وأدوات CGI لتقديم مشهد 4D كصورة ثنائية الأبعاد.
يحتوي main.py على تعريف مشهد 4D البسيط والرمز لتقديمه إلى صورة ثنائية الأبعاد.
Point(list[float]) - نقطة أو متجه
Poly(list[list[float]]) - مجموعة من النقاط أو المتجهات
Span(org:Point, basis:Poly) - basis أو إطار من المتجهات المرساة عند نقطة محددة ( org ) في الفضاء. يمكن أن تمثل مساحة فرعية ، أو (عبر الفئات الفرعية) متوازي أو بسيط.
Body(org:Point, basis:Poly) - فئة فرعية من الامتداد. يحتوي على عمليات شائعة للبساطة والموازاة.
Simplex(org:Point, basis:Poly) - فئة فرعية من الجسم. N-dimensional simplex (تعميم المثلث ورباعيدرون) وهو عبارة عن مجموعة من النقاط حول org على طول المتجهات على basis مع معاملات إيجابية لها مجموعها على الأكثر.
Parallelotope(org:Point, basis:Poly) - فئة فرعية من الجسم. متوازي n-dimensional (تعميم متوازي المتوازي والموازاة) وهو مجموعة من النقاط حول org على طول المتجهات على basis مع معاملات بين 0 و 1.
ObjectFace (
body : Simplex ,
normal : Point ,
color : ( R , G , B ),
surface : str
)كائنات الواجب هي لبنات بناء مشهدنا. نحن نعمل مع الوجوه الثلاثي (البسيطة) التي هي بعد واحد أقل من بعد المشهد ، لذلك في مشهد 4D ، نعمل مع وجوه ثلاثية الأبعاد تغطي أسطح الكائنات 4D. يجب أن تكون الوجوه موجهة أيضًا ، لذلك نقوم بتخزين متجهها الطبيعي ، وكذلك لونها ، ونوع سطحها الذي يحدد الحساب المستخدم لتأثيرات الإضاءة (على سبيل المثال ، غير لامع ، شفاف ، إلخ)
Camera(space:Span, focd:float) - يحدد الكاميرا. يتم تعريف الكاميرا من خلال امتداد المساحة بأكملها مع أساس تقويم. تشكل ناقلات D-1 الأولى جزء الصورة ، في حين أن النقطة المحورية هي focd (المسافة البؤرية) على طول المتجه الأخير.
Light(p:Point) - يحدد ضوء نقطة.
Renderer (
objects : list [ ObjectFace ],
cameras : list [ Camera ], # one for each dimension reduction
lights : list [ Light ],
img_range : float , # the maximum 2D coordinate in the 2D image
img_step : float # the resolution of the 2D image
)مجموعات الكائنات والكاميرات والأضواء وتحتوي على منطق لتقديم مشهد 4D في صورة ثنائية الأبعاد.
يرجى قراءة تفسيرات مفصلة ومعلومات أساسية في الويكي على https://github.com/csirmaz/hypergeometry/wiki