Python精灵模块的inverting_points反演指令

所有命令 单独命令 屏幕命令 角色命令

单独命令 >> Python精灵模块的inverting_points反演指令

简介:设在平面内给定一点O和常数k(k不等于零),
对于平面内任意一点A,确定A′,使A′为直线OA上一点,
并且有向线段OA与OA′满足OA·OA′=k,我们称这种变换是以O为反演中心,
以k为反演幂的反演变换,简称反演。称A′为A关于O(r)的互为反演点。
例子:
import turtle
from sprites import Screen,inverting_points    

def draw_circle(center,radius):
    turtle.penup();turtle.goto(center);turtle.fd(radius);turtle.left(90)
    turtle.pd();turtle.circle(radius);turtle.pu();turtle.right(90);turtle.bk(radius)
def draw_line(p1,p2):
    turtle.penup();turtle.goto(p1);turtle.pd();turtle.goto(p2);turtle.penup()
    
screen = Screen()
screen.tracer(0,0)
screen.xy_grid()             # 显示坐标格子图

turtle.ht()
turtle.pensize(2)

k = 100*100                     # 反演幂
O = (-40,-40)                # 反演圆中心,绿色
draw_circle(O,k**0.5)
turtle.goto(O);turtle.dot(10,'green')
A = (120,80)                # 一个定点,待反演的点,红色
turtle.goto(A);turtle.dot(10,'red')
draw_line(O,A )

m = inverting_points([A],O,k)     # 返回A点以O为反演中心,k为反演幂的反演点
turtle.goto(m[0]);turtle.dot(10,'blue') # 反演点,蓝色
draw_line(A,m[0])  
writed by lixingqiu 关注"异编程"微信公众号,获取更多关于Python精灵模块的咨讯: