一个关于画图的算法思路

cplusplus2007 2007-04-13 01:00:56
不知道有人做过无线蜂窝系统GSM中小区优化软件没?里面有一个问题是:给定一些基站位置信息,以及每个基站下的小区信息(包括小区数目,方位角等等),在平面图中画出各个小区边界来。虽然有软件实现了这个功能,但我不知道是怎么实现的。

由此我想用一个简单的问题替代一下,不知道可以不?

即:在一个平面内给定一些点(代表基站),根据这些点去画多边形,要求每个多边形都要包含且仅仅包含一个点。

有人说是计算机图论里的东西,我不懂这个,谁有类似的算法?提示一下思路也行!

谢谢!
...全文
259 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mays 2007-08-11
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim cir As Feature
Dim pt As New MapXLib.Point
Dim pts As New MapXLib.Points

Dim radSec, Azimuth, Beam, counter As Integer
Dim ptX, ptY As Double
Dim calc_azi As Single
Dim radiu As Single

Const PI = 3.141592654

radiu = 300 '扇区半径长度

Dim m_TempLayer As MapXLib.Layer
Dim LayerInfo2 As New MapXLib.LayerInfo

Set m_TempLayer = Map1.Layers.CreateLayer("DispBSC")

' 定义样式表
Dim BSCStyle As New MapXLib.Style
With BSCStyle
.RegionColor = RGB(255, 222, 0)
.RegionPattern = miPatternDiagCross
.RegionTransparent = True
End With

pts.RemoveAll

Azimuth = 145
Beam = 65

pt.Set CDbl(108.03967461), CDbl(24.6986944)
pts.Add pt

'****************Calculate shape and orientation of beam symbol*****************
calc_azi = Azimuth + Beam / 2
calc_azi = -calc_azi + 90

For counter = 2 To 16
ptY = pts.Y(1) + (radiu * Sin(calc_azi * PI / 180)) / (69.093 * 1609)
ptX = pts.X(1) + (radiu * Cos(calc_azi * PI / 180)) / (69.093 * 1609 * Cos((ptY + pts.Y(1)) * PI / (180 * 2)))
pt.Set ptX, ptY
pts.Add pt
calc_azi = calc_azi + Beam / 16
Next

Set cir = Map1.FeatureFactory.CreateRegion(pts, BSCStyle)

Map1.Layers("DispBSC").AddFeature cir

Map1.CenterX = 108.03967461
Map1.CenterY = 24.6986944
End Sub


这是mapx的做法!!但在mapxtreme我就是不会写!!那个会可否告诉我,谢谢!!!
cplusplus2007 2007-04-14
  • 打赏
  • 举报
回复
CSDN的高手都不屑于回答这样的初级问题啊?
he11o 2007-04-14
  • 打赏
  • 举报
回复
可能要去看看专门的地理信息教材
cplusplus2007 2007-04-13
  • 打赏
  • 举报
回复
高人指点一下啊
amei_zhang83 2007-04-13
  • 打赏
  • 举报
回复
目前还不知道怎么做,来看看题目先!
surefire 2007-04-13
  • 打赏
  • 举报
回复
要求每个多边形都要包含且仅仅包含一个点。..
===
没写错??。。
=========================================

估计就是每个多边形对应一个点
不想低调 2007-04-13
  • 打赏
  • 举报
回复
要求每个多边形都要包含且仅仅包含一个点。..
===
没写错??。。
长尾巴的悟空 2007-04-13
  • 打赏
  • 举报
回复
这不就是那个离散数学的题目吗?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧