## 3 Routing algorithms based on sensor position
### Flooding-based routing
The disadvantage of B-spline curve is that \(S\) and \(D\) are not the start point and end point of curve based on the original equation of B-spline curve. In [45], in order to make the B-spline curve start from \(S\) and end to \(D\), Equation.1 is changed as following: (1) Let \(t\)=0 and \(t\)=1 respectively to get Equation.2. (2). Set P\({}_{0,2}\)(0)=\(S\) and P\({}_{0,2}\) (1)=\(D\), then select one control point V\({}_{1}\), the other two control points can be calculated. The three control points (\(V_{0}\), \(V_{1}\), \(V_{2}\)) can ensure that \(S\) and \(D\) are the start and end points of the B-spline curves respectively. The coordinates of control points and \(t\) are encoded and forwarded. Receiving the packet, the intermediate sensors can calculate and judge itself on the curve or not based on the greedy next-hop selection strategy. \[ \begin{array}{l}P(t)=[t^{2}\;\;t\;\;1]\frac{1}{2}\left[\begin{array}{ccc}1 \text{ - 2 }&1\\ \text{ - 2 }&2&0\\ 1&1&0\end{array}\right]\left[\begin{array}{c}V_{0}\\ V_{1}\\ V_{2}\end{array}\right]\;\;0\leq t\leq 1\\ t\text{=}\textbf{0}\;\;\;\;\;\;P_{0,2}(0)=(V_{0}+V_{1})\textbf{/2}\\ t\text{=}\textbf{1}\;\;\;\;\;P_{0,2}(1)=(V_{1}+V_{2})\textbf{/2}\\ \end{array} \right\}\;\Rightarrow\left\{ \begin{array}{l}V_{0}=\textbf{2}P_{0, 2}(0)-V_{1}\\ V_{2}=\textbf{2}P_{0,2}(1)-V_{1}\\ \end{array} \right.\\ \end{array} \tag{1}\]  
How to select next-hop is another important issue in CBR. Basically, the next-hop node should make sure that the packet advances along the trajectory curve, not backwards. Depending on application and user criteria, different selecting strategies have been proposed [46] (Figure.15): (1) Random: select the next node randomly from the neighborhood. (2) Closest to Curve (CTC): select the node closest to the curve from its neighbor. (3) Least Advancement on Curve (LAC): forward to the node closest to the current node. (4) Most Advancement on Curve (MAC): forward the packets to the farthest node along the curve. (5) Lowest Deviation from Curve (LDC): the best next node \(N_{i}\) should be selected such that the line between \(N_{0}\) and \(N_{i}\) must have the smallest deviation from the trajectory compared to the other lines between N\({}_{0}\) and any other node in N\({}_{0}\)'s neighborhood. In Figure.15, \(N_{i}\) (\(i\)=1...4) is the candidate of \(N_{0}\)'s next-hop. \(N_{3}\), \(N_{2}\), \(N_{I}\) and \(N_{4}\) are selected as the next-hop based on CTC, LAC, MAC and LDC separately. CBR is a simple and effective routing strategy for sensor network. Many applications can benefit from CBR framework. Figure.16 shows some applications of CBR [44]. (1) Broadcast: use a number of radial outgoing lines that are reasonably close to each other, shown as Figure.16(a). It can achieve a similar effect without all the communication overhead involved by receiving duplicates in classical flooding. A simple five-step discovery scheme (Figure.16(d)) based on linear trajectories may be used to replace traditional broadcast based-discovery. (2) Multi-path: both disjoint (Figure.16(b)) and braided (Figure.16(c)) paths are useful in providing resilience. It's easy to construct multi-path according to different control points [47]. (3) Coverage: a source would indicate the directions and the lengths of the lines that would achieve a satisfactory coverage (Figure.16(e)). (4) Multicast: If unicast communication is modeled by a simple curve, multicast is modeled by a tree in which each portion might be a curve, or a simple line. Distribution trees are used for either broadcasting (Figure.16(e)), or multicast routing (Figure.16(f)).