我有以下任务.我正在Studio 2010中的C#上为Visio 2010编写一个加载项.假设我打开了一个图表.我在这个图中有任何形状的形状(让我们尝试管理一个开头的形状).问题是如何阅读这种形状的任何属性?我应该使用哪种API?
基本算法:
(代码示例将不胜感激)
有没有人用过igraph的vertex.shape功能?这http://cneurocvs.rmki.kfki.hu/igraph/doc/R/igraph.vertex.shapes.html很有希望,但我无法理解.有没有人有一个工作代码的例子?
我需要一种方法来定义轮廓是表示线还是闭合形状.在Java中,我有一个对象Shape,其中包含所有将其再次定义为单独对象的点.对象Point表示点的坐标.我尝试用递归解析形状但是对于更大的形状,超过150点,性能非常差.我附上了我要解析的形状的图片,以帮助更好地理解这个问题.
我正在放置一个图像,以便更好地显示问题.

这只是展示了我得到的所有形状.我想只展示两个封闭的.
提前致谢.Vassil Kossev
我正试图在核心图形中斜切路径.有没有人已经为任意形状做过这个,如果是这样,他们是否愿意共享代码?
我在下面列出了我的实现.我用三个变量来确定伞:CGFloat bevelSize,UIColor highlightColor,UIColor shadow.请注意,光源的角度始终为135度.我还没有完成这个,但这里基本上是我要做的,分成两部分.第一部分,产生焦点:
产生焦点的目的是按比例"缩小"形状.
第二部分有点复杂.我必须创建斜面形状的每个边/部分.我这样做是通过bevelSize沿着从最近的焦点延伸到所讨论的点的线的半径来绘制(由)原始形状的每个点.当我有两个连续的'bevelPoints'时,我创建了一个UIBezierPath,它从bevelPoints延伸到原始点并返回到bevelPoints(注意,这包括弧).这会创建一个我可以用来填充的"边/段".在直边,我只是填充阴影或高光颜色,取决于侧面的角度.对于弧,我确定弧度'弧'.如果该弧包含一个过渡角(M_PI_4或M_PI + M_PI_4),我用渐变填充它(从阴影到高光或高亮到阴影,这是合适的).否则我用纯色填充它.
更新
我把我的答案(见下文)分成了一个单独的博文.我不再使用您在上面看到的实现细节,但我将其全部保留在那里以供参考.我希望这可以帮助其他人使用Core Graphics.
是否可以仅使用HTML和CSS创建下面的弯曲帆形状?

我从这个答案中可以看出,我可以使用以下方法创建一个直边帆:
#triangle {
width: 0;
height: 0;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
}
Run Code Online (Sandbox Code Playgroud)
看起来像:

或者我可以更接近边界半径:
#sail {
background: #ff0000;
width: 50px;
height: 100px;
border-top-right-radius: 50px 100px;
-moz-border-radius-topright: 50px 100px;
-webkit-border-top-right-radius: 50px 100px;
-khtml-border-radius-topright: 50px 100px;
}
Run Code Online (Sandbox Code Playgroud)
看起来像这样:

但并不像我真的那么优雅.顶部的帆形图像具有柔和优雅的曲线.
不使用图像我能做得更好吗?
你如何使用OpenCV获得不规则形状的质心?
我想知道我是否可以分别获得ndarray的x和y尺寸.我知道我可以使用 ndarray.shape一个代表维度的元组,但是如何在x和y信息中分离它?
先感谢您.
我试图用TensorFlow读取图像分类问题的一些图像输入.
当然,我这样做tf.image.decode_jpeg(...).我的图像大小可变,因此我无法为图像张量指定固定的形状.
但我需要根据实际尺寸来缩放图像.具体来说,我想以保持纵横比的方式将短边缩放到固定值和长边.
我可以通过获得某个图像的实际形状shape = tf.shape(image).我也能够为新的长边做计算
shape = tf.shape(image)
height = shape[0]
width = shape[1]
new_shorter_edge = 400
if height <= width:
new_height = new_shorter_edge
new_width = ((width / height) * new_shorter_edge)
else:
new_width = new_shorter_edge
new_height = ((height / width) * new_shorter_edge)
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,我无法通过new_height,并new_width于tf.image.resize_images(...)因为其中一个是张量和resize_images预计整数作为高度和宽度的投入.
有没有办法"拉出"张量的整数,还是有其他方法可以用TensorFlow完成我的任务?
提前致谢.
编辑
因为我也有一些其他的问题有tf.image.resize_images,这里是为我工作的代码:
shape = tf.shape(image)
height = shape[0]
width = shape[1]
new_shorter_edge = tf.constant(400, dtype=tf.int32)
height_smaller_than_width = tf.less_equal(height, …Run Code Online (Sandbox Code Playgroud) 我想找到近似形状的总数.
在图像中,有6个没有近似多边形.我试过以下方法
for (NSInteger i = 0; i < [arrLinesInfo count]; i++) {
NSDictionary *dictLineInfo = [arrLinesInfo objectAtIndex:i];
startPoint = CGPointMake([[dictLineInfo valueForKey:@"line_start_point_x"] doubleValue], [[dictLineInfo valueForKey:@"line_start_point_y"] doubleValue]);
endPoint = CGPointMake([[dictLineInfo valueForKey:@"line_end_point_x"] doubleValue], [[dictLineInfo valueForKey:@"line_end_point_y"] doubleValue]);
[self isCircularRoute:startPoint withEndPoint:endPoint];
}
-(void) isCircularRoute:(CGPoint) lineStartPoint withEndPoint:(CGPoint) lineEndPoint
{
NSPredicate *pre= [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"
(self.line_end_point_x == '%f' && self.line_end_point_y == '%f') OR
(self.line_start_point_x == '%f' && self.line_start_point_y == '%f') OR
(self.line_end_point_x == '%f' && self.line_end_point_y == '%f') OR
(self.line_start_point_x == '%f' && self.line_start_point_y == '%f')", …Run Code Online (Sandbox Code Playgroud) 我需要创建带圆角的三角形.这是我的代码
<item android:gravity="center">
<rotate
android:fromDegrees="45"
android:pivotX="-40%"
android:pivotY="87%"
android:toDegrees="45" >
<shape android:shape="rectangle" >
<corners android:radius="2dp"/>
<solid android:color="#ffffff" >
</solid>
<stroke
android:color="#ffffff" />
</shape>
</rotate>
</item>
Run Code Online (Sandbox Code Playgroud)
我的代码只有三角形的一边是圆形的,另外两个角没有圆角.请帮我创建三角形的圆角.