標籤:

PFC5.0中的Range演算法

作者:John.Lee

Range演算法允許用戶通過一些命令來指定一個對象的限定集(balls,contacts, clumps, etc.)。大多數命令接受一個可選的range關鍵詞短語,且如果存在必須放在命令語句的末尾,下面列出了幾個命令的示例。注意:如果未指定range關鍵詞短語,那麼命令將應用於所有可能的目標對象。

  • ball distribute keyword ... range ...
  • dfn copy idfrom idto range ...
  • clump initialize keyword ... range ...
  • ... etc.

標識一組對象範圍,可以由任意數量的range元素組成。對於range演算法的解釋,可以參考下面幫助文件的內容來理解,它做為一種程序的關鍵詞類的輔助手段用於用戶自定義一系列限定集合。

  • The range logic is understood as a capability within the program that is applied to other commands via keyword, rather than a functionality that has its own top-level command.
  • That said, there is a range command. Its purpose is to define a named, user-specified set of range elements. However, the resulting set (the "named range") is not applied to anything until it is utilized as an element within a range phrase.

Range關鍵詞短語由「range」關鍵詞+「range元素」,其在命令行中的表達見下圖。

上面的命令標識為ball generate命令,其後為命令組成關鍵詞,當出現<range>關鍵詞時,說明後面開始為range過濾功能,由至少一條range元素組成基本range短語。除了上述range元素外,range關鍵詞短語也可以包括邏輯關鍵詞(or、and、not, etc.)或者限度(extent)關鍵詞。使用限度關鍵詞時,對象的限度是用於驗證對象是否在範圍內,此關鍵詞只適用於幾何的range元素(如,sphere)。

如果指定了多個range元素,那麼在默認情況下,由range短語返回的對象的最終集合將是獨立的range元素的交集。為了使得range功能更加靈活,下面介紹下range關鍵詞短語的邏輯運算。

union關鍵詞可以出現在range短語的任何位置,用於返回目標對象為當前range元素的並集。

not關鍵詞可以用於特定的range元素,來返回與該元素相反的目標對象,但是not關鍵詞必須放在該特定元素的末尾。

by關鍵詞後面跟一個字元串s,可以用於對特定的range元素過濾出現名稱為s類型的對象。比如:「geometry delete polygons range id 1 by node」。刪除邊id為1的多邊形。表1給出了可以使用的by關鍵詞對應的字元串。

由多個range元素組合能產生並集或交集範圍的程序示例如下:

一個命名範圍也可以通過命令RANGE創建,一旦該範圍被命名,該名稱可以作為一個關鍵詞用於代替range元素所指定的範圍。上面所用的邏輯操作也可以對命名的範圍使用,方法和range元素相一致。

(END)

轉自技術鄰查看原文

更多


推薦閱讀:

情人節,用C++畫一個心:)
「壓」之貪心
成功人士從不刷Leetcode(4)
如何感性地理解EM演算法?

TAG:算法 |