7个稳定版本
1.0.6 | 2022年10月10日 |
---|---|
1.0.5 | 2022年10月8日 |
1825 在 Rust 模式 中
每月下载 26 次
250KB
299 行
签名距离场
您可以将它们组合、变换,甚至开发全新的SDFs,这些SDFs可以用这个库的多个渲染器之一进行渲染
示例
基本形状
$ cargo run --example primitives
Circle:
++++++++
++++++++++++++++++++++++++
+++++++----------------------+++++++
+++++------- -------+++++
++++----- -----++++
++++---- ----++++
++++---- ----++++
++++--- ---++++
+++--- ---+++
+++--- ---+++
+++--- ---+++
+++--- ---+++
+++--- ---+++
++--- ---++
+++-- --+++
+++--- ---+++
+++-- --+++
++--- ---++
++-- --++
+++-- --+++
+++-- --+++
++-- --++
++--- ---++
+++-- --+++
+++--- ---+++
+++-- --+++
++--- ---++
+++--- ---+++
+++--- ---+++
+++--- ---+++
+++--- ---+++
+++--- ---+++
++++--- ---++++
++++---- ----++++
++++---- ----++++
++++----- -----++++
+++++------- -------+++++
+++++++----------------------+++++++
++++++++++++++++++++++++++
++++++++
Rectangle:
++++++++++++++++++++++++++++++++++++++++
+--------------------------------------+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--------------------------------------+
++++++++++++++++++++++++++++++++++++++++
Line:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Straight:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Plane:
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
运算符
变换
$ cargo run --example operators_transform
None:
++++++++++++++++++++++++++++++++++++++++
+--------------------------------------+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--- ---+
+--------------------------------------+
++++++++++++++++++++++++++++++++++++++++
Translate:
+++++++++++++++++++++++++++++++++++++++
++-------------------------------------+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
++-- ---+
Rotate:
++
+++++----+
++++-----------++
++++--------- ---+
++++--------- --++
++++--------- ---+
+++++-------- ---+
+++++--------- --++
++++--------- ---+
++++--------- --++
++++--------- ---+
+-------- ---+
+-- --++
+--- ---+
+--- --++
++-- ---+
+--- ---+
++-- --+
+--- --------+
+--- ---------++++
++-- ---------++++
+--- ---------++++
++-- ---------+++++
+--- --------+++++
+--- ---------++++
++-- ---------++++
+--- ---------++++
++-----------++++
+----+++++
++
Scale:
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
+++----- -----+++
Matrix:
++-+++++
+-- --------++++
+--- --------++++
+--- --------+++
++-- ---+
+-- ---+
+-- --+
+--- --++
+--- ---+
++-- ---+
+-- --+
+--- --+
+--- --++
++-- ---+
+-- ---+
+-- --+
+--- --++
+--- ---+
++-- ---+
+-- --+
+--- --+
+--- --++
+++-------- ---+
++++-------- ---+
++++-------- --+
+++++-++
布尔操作
$ cargo run --example operators_boolean
a:
++++++++++++++++++++
+++++------------------+++++
++++------ ------++++
+++----- -----+++
+++---- ----+++
+++---- ----+++
+++--- ---+++
+++--- ---+++
+++--- ---+++
++--- ---++
+++-- --+++
++--- ---++
++--- ---++
++--- ---++
++--- ---++
+++-- --+++
++--- ---++
+++--- ---+++
+++--- ---+++
+++--- ---+++
+++---- ----+++
+++---- ----+++
+++----- -----+++
++++------ ------++++
+++++------------------+++++
++++++++++++++++++++
b:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+--------------------------------------------------------------------------+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+--------------------------------------------------------------------------+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
a ∪ b:
++++++++++++++++++++
+++++------------------+++++
++++------ ------++++
+++----- -----+++
+++---- ----+++
+++---- ----+++
+++++++++++++++++--- ---+++++++++++++++++
+------------------ ------------------+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+-- --+
+------------------ ------------------+
+++++++++++++++++--- ---+++++++++++++++++
+++---- ----+++
+++---- ----+++
+++----- -----+++
++++------ ------++++
+++++------------------+++++
++++++++++++++++++++
a ∩ b:
++++++++++++++++++++++++++++++++++++++++++++++++
+++--------------------------------------------+++
+++--- ---+++
++--- ---++
+++-- --+++
++--- ---++
++--- ---++
++--- ---++
++--- ---++
+++-- --+++
++--- ---++
+++--- ---+++
+++--------------------------------------------+++
++++++++++++++++++++++++++++++++++++++++++++++++
a\b:
-------------------- --------------------
-+++++++++++++++--- ---+++++++++++++++-
-++ +++--- ---+++ ++-
-++ ++--- ---++ ++-
-++ +++-- --+++ ++-
-++ ++--- ---++ ++-
-++ ++--- ---++ ++-
-++ ++--- ---++ ++-
-++ ++--- ---++ ++-
-++ +++-- --+++ ++-
-++ ++--- ---++ ++-
-++ +++--- ---+++ ++-
-+++++++++++++++--- ---+++++++++++++++-
-------------------- --------------------
依赖项
~16MB
~133K SLoC