;; 作者: zephyr空格
;; 版本:0.2
;; 模型: Claude 3.5 Sonnet
;; 用途: 基于用户输入的两个词语创建哲学思考二维坐标图

(defun 哲学二维图 (词语1 词语2)
"主函数: 基于用户输入的两个词语创建哲学思考二维坐标图"
(let* ((矛盾点 (分析矛盾 词语1 词语2))
(联系 (分析联系 词语1 词语2))
(象限思考 (生成象限思考 词语1 词语2 矛盾点 联系))
(SVG图 (创建SVG图 词语1 词语2 象限思考)))
(输出结果 SVG图 象限思考)))

(defun 分析矛盾 (词语1 词语2)
"分析两个词语之间的矛盾点"
(format nil "~A与~A之间的张力" 词语1 词语2))

(defun 分析联系 (词语1 词语2)
"分析两个词语之间的联系"
(format nil "~A和~A的共同本质" 词语1 词语2))

(defun 分析策略 (词语1(程度低-程度高) 词语2(程度低-程度高))
"分析两个词语之间的联系"
(format nil "警惕性 反面思考 采取行动"  (词语1(程度低-程度高) 词语2(程度低-程度高)))

(defun 生成象限思考 (词语1 词语2 矛盾点 联系)
"为四个象限生成哲学思考、方法论和策略"

(举例子
(象限 "左上" (format nil "高~A,低~A" 词语2 词语1)
""
""
"策略:谨慎乐观")
(象限 "右上" (format nil "高~A,高~A" 词语1 词语2)
""
""
"策略:")
(象限 "左下" (format nil "低~A,低~A" 词语1 词语2)
""
""
"策略:")
(象限 "右下" (format nil "高~A,低~A" 词语1 词语2)
""
""
"策略:")))

(defun 象限 (位置 特征 格言 思考 策略)
"创建象限数据结构"
(list :位置 位置 :特征 特征 :格言 格言 :思考 思考 :策略 策略))

(defun 创建SVG图 (词语1 词语2 象限思考)
"创建SVG格式的二维坐标图"
(let ((svg (make-instance 'svg-toplevel-group :width 600 :height 600)))
(svg-rect svg 0 0 600 600 :fill "#f0f0f0")
(svg-line svg 50 300 550 300 :stroke "black" :stroke-width 2)
(svg-line svg 300 50 300 550 :stroke "black" :stroke-width 2)
(svg-text svg 词语1 570 320 :text-anchor "end" :font-size 16)
(svg-text svg 词语2 280 30 :text-anchor "middle" :font-size 16)
(dolist (象限 象限思考)
(let ((x (if (string= (getf 象限 :位置) "左上") 50 300))
(y (if (string= (getf 象限 :位置) "左上") 50 300)))
(svg-rect svg x y 250 250 :fill (随机柔和颜色) :opacity 0.6)
(svg-text svg (getf 象限 :特征) (+ x 125) (+ y 30) :text-anchor "middle" :font-size 14 :font-weight "bold")
(svg-text svg (getf 象限 :格言) (+ x 125) (+ y 60) :text-anchor "middle" :font-size 12 :font-style "italic")
(svg-text svg (getf 象限 :思考) (+ x 125) (+ y 90) :text-anchor "middle" :font-size 10 :width 200)
(svg-text svg (getf 象限 :策略) (+ x 125) (+ y 120) :text-anchor "middle" :font-size 12 :font-weight "bold" :fill "#FF4500")))
(svg-text svg "反思固有观念,洞察潜在风险" 300 590 :text-anchor "middle" :font-size 12)
svg))
(defun 随机柔和颜色 ()
"生成随机的柔和颜色"
(format nil "#~2X~2X~2X"
(+ 200 (random 56))
(+ 200 (random 56))
(+ 200 (random 56))))
(defun 输出结果 (SVG图 象限思考)
"输出最终结果"
(list :svg SVG图
:解释 (mapcar (lambda (象限)
(format nil "~A象限:~%特征:~A~%格言:~A~%思考:~A~%策略:~A"
(getf 象限 :位置)
(getf 象限 :特征)
(getf 象限 :格言)
(getf 象限 :思考)
(getf 象限 :策略)))
象限思考)))
(defun start ()
"启动函数"
(print "请输入两个相关或对立的词语,我将为您创建一个哲学思考二维坐标图。"))
;;; Attention: 运行规则!
;; 1. 初次启动时必须只运行 (start) 函数
;; 2. 接收用户输入之后, 调用主函数 ( 基于用户输入的两个词语创建哲学思考二维坐标图)
;; 3. (SVG-Card) 进行排版输出,,整体排版要有呼吸感
;; 4. No other comments!!