本文整理汇总了TypeScript中core/hittest.dist_to_segment函数的典型用法代码示例。如果您正苦于以下问题:TypeScript dist_to_segment函数的具体用法?TypeScript dist_to_segment怎么用?TypeScript dist_to_segment使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dist_to_segment函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: _hit_point
protected _hit_point(geometry: PointGeometry): Selection {
/* Check if the point geometry hits this line glyph and return an object
that describes the hit result:
Args:
* geometry (object): object with the following keys
* sx (float): screen x coordinate of the point
* sy (float): screen y coordinate of the point
* type (str): type of geometry (in this case it's a point)
Output:
Object with the following keys:
* 0d (bool): whether the point hits the glyph or not
* 1d (array(int)): array with the indices hit by the point
*/
const result = hittest.create_empty_hit_test_result()
const point = {x: geometry.sx, y: geometry.sy}
let shortest = 9999
const threshold = Math.max(2, this.visuals.line.line_width.value() / 2)
for (let i = 0, end = this.sx.length-1; i < end; i++) {
const p0 = {x: this.sx[i], y: this.sy[i] }
const p1 = {x: this.sx[i + 1], y: this.sy[i + 1]}
const dist = hittest.dist_to_segment(point, p0, p1)
if (dist < threshold && dist < shortest) {
shortest = dist
result.add_to_selected_glyphs(this.model)
result.get_view = () => this
result.line_indices = [i]
}
}
return result
}
示例2: _hit_point
_hit_point(geometry) {
/* Check if the point geometry hits this line glyph and return an object
that describes the hit result:
Args:
* geometry (object): object with the following keys
* sx (float): screen x coordinate of the point
* sy (float): screen y coordinate of the point
* type (str): type of geometry (in this case it's a point)
Output:
Object with the following keys:
* 0d (bool): whether the point hits the glyph or not
* 1d (array(int)): array with the indices hit by the point
*/
const result = hittest.create_hit_test_result();
const point = {x: geometry.sx, y: geometry.sy};
let shortest = 9999;
const threshold = Math.max(2, this.visuals.line.line_width.value() / 2);
for (let i = 0, end = this.sx.length-1; i < end; i++) {
const [p0, p1] = [{x: this.sx[i], y: this.sy[i]}, {x: this.sx[i+1], y: this.sy[i+1]}];
const dist = hittest.dist_to_segment(point, p0, p1);
if ((dist < threshold) && (dist < shortest)) {
shortest = dist;
result['0d'].glyph = this.model;
result['0d'].get_view = () => this
result['0d'].flag = true; // backward compat
result['0d'].indices = [i];
}
}
return result;
}
示例3: _hit_point
protected _hit_point(geometry: PointGeometry): Selection {
const result = hittest.create_empty_hit_test_result()
const point = {x: geometry.sx, y: geometry.sy}
let shortest = 9999
const hits: {[key: string]: number[]} = {}
for (let i = 0, end = this.sxs.length; i < end; i++) {
const threshold = Math.max(2, this.visuals.line.cache_select('line_width', i) / 2)
let points = null
for (let j = 0, endj = this.sxs[i].length-1; j < endj; j++) {
const p0 = {x: this.sxs[i][j], y: this.sys[i][j] }
const p1 = {x: this.sxs[i][j+1], y: this.sys[i][j+1]}
const dist = hittest.dist_to_segment(point, p0, p1)
if (dist < threshold && dist < shortest) {
shortest = dist
points = [j]
}
}
if (points)
hits[i] = points
}
result.indices = keys(hits).map((x) => parseInt(x, 10))
result.multiline_indices = hits
return result
}